diff --git a/IPython/html/services/contents/clientsidenbmanager.py b/IPython/html/services/contents/clientsidenbmanager.py
index 8428269..b1c8dcc 100644
--- a/IPython/html/services/contents/clientsidenbmanager.py
+++ b/IPython/html/services/contents/clientsidenbmanager.py
@@ -21,13 +21,3 @@ class ClientSideContentsManager(ContentsManager):
 
     def file_exists(self, name, path=''):
         return True
-
-    def get_kernel_path(self, path, model=None):
-         """Return the API path for the kernel
-         
-         KernelManagers can turn this value into a filesystem path,
-         or ignore it altogether.
-         
-         Here just always return home directory
-         """
-         return '/'
diff --git a/IPython/html/services/contents/manager.py b/IPython/html/services/contents/manager.py
index 491401f..1c87064 100644
--- a/IPython/html/services/contents/manager.py
+++ b/IPython/html/services/contents/manager.py
@@ -187,8 +187,12 @@ class ContentsManager(LoggingConfigurable):
         
         KernelManagers can turn this value into a filesystem path,
         or ignore it altogether.
+
+        The default value here will start kernels in the directory of the
+        notebook server. FileContentsManager overrides this to use the
+        directory containing the notebook.
         """
-        return path
+        return ''
 
     def increment_filename(self, filename, path='', insert=''):
         """Increment a filename until it is unique.
diff --git a/IPython/html/services/kernels/kernelmanager.py b/IPython/html/services/kernels/kernelmanager.py
index e1bd5c2..db73aa4 100644
--- a/IPython/html/services/kernels/kernelmanager.py
+++ b/IPython/html/services/kernels/kernelmanager.py
@@ -54,14 +54,10 @@ class MappingKernelManager(MultiKernelManager):
 
     def cwd_for_path(self, path):
         """Turn API path into absolute OS path."""
-        # short circuit for NotebookManagers that pass in absolute paths
-        if os.path.exists(path):
-            return path
-
         os_path = to_os_path(path, self.root_dir)
         # in the case of notebooks and kernels not being on the same filesystem,
         # walk up to root_dir if the paths don't exist
-        while not os.path.exists(os_path) and os_path != self.root_dir:
+        while not os.path.isdir(os_path) and os_path != self.root_dir:
             os_path = os.path.dirname(os_path)
         return os_path