diff --git a/tools/cfgshell b/tools/cfgshell
index 253d32a3a9baed1fff33301013de66b575ba15e2..966cc99e68ed9297e0b82fa5c24c4774b74c013b 100755
--- a/tools/cfgshell
+++ b/tools/cfgshell
@@ -186,7 +186,8 @@ class ConfigShell(cmd.Cmd):
   def do_cd(self, line):
     """Changes the current path.
 
-    Valid arguments: either .. or a child of the current object.
+    Valid arguments: either .., /, "" (no argument) or a child of the current
+    object.
 
     """
     if line == "..":
@@ -197,6 +198,10 @@ class ConfigShell(cmd.Cmd):
       else:
         print "Already at top level"
         return False
+    elif len(line) == 0 or line == "/":
+      self.parents = self.parents[0:1]
+      self.path = []
+      return False
 
     pointer = self.parents[-1]
     dirs, entries = self._get_entries(pointer)
@@ -317,6 +322,7 @@ class ConfigShell(cmd.Cmd):
     print
     return True
 
+
 class Error(Exception):
   """Generic exception"""
   pass