diff --git a/reclass/storage/yaml_fs/__init__.py b/reclass/storage/yaml_fs/__init__.py
index ae614e0..5a13050 100644
--- a/reclass/storage/yaml_fs/__init__.py
+++ b/reclass/storage/yaml_fs/__init__.py
@@ -27,14 +27,16 @@
         super(ExternalNodeStorage, self).__init__(STORAGE_NAME)
 
         def name_mangler(relpath, name):
-            # nodes are identified just by their basename
-            return name
+            # nodes are identified just by their basename, so
+            # no mangling required
+            return relpath, name
         self._nodes_uri = nodes_uri
         self._nodes = self._enumerate_inventory(nodes_uri, name_mangler)
 
         def name_mangler(relpath, name):
             if relpath == '.':
-                return name
+                # './' is converted to None
+                return None, name
             parts = relpath.split(os.path.sep)
             if name != 'init':
                 # "init" is the directory index, so only append the basename
@@ -42,7 +44,7 @@
                 # effect that data in file "foo/init.yml" will be registered
                 # as data for class "foo", not "foo.init"
                 parts.append(name)
-            return '.'.join(parts)
+            return relpath, '.'.join(parts)
         self._classes_uri = classes_uri
         self._classes = self._enumerate_inventory(classes_uri, name_mangler)
 
@@ -60,13 +62,15 @@
                 name = os.path.splitext(f)[0]
                 relpath = os.path.relpath(dirpath, basedir)
                 if callable(name_mangler):
-                    name = name_mangler(relpath, name)
+                    relpath, name = name_mangler(relpath, name)
                 uri = os.path.join(dirpath, f)
                 if name in ret:
                     E = reclass.errors.DuplicateNodeNameError
                     raise E(self.name, name,
                             os.path.join(basedir, ret[name]), uri)
-                ret[name] = os.path.join(relpath, f)
+                if relpath:
+                    f = os.path.join(relpath, f)
+                ret[name] = f
 
         d = Directory(basedir)
         d.walk(register_fn)
