diff --git a/reclass/storage/yamldata.py b/reclass/storage/yamldata.py
index 034832d..c549089 100644
--- a/reclass/storage/yamldata.py
+++ b/reclass/storage/yamldata.py
@@ -54,12 +54,23 @@
         return self._data
 
     def set_absolute_names(self, name, names):
-        parent = '.'.join(name.split('.')[0:-1])
+        structure = name.split('.')
+        parent = '.'.join(structure[0:-1])
         new_names = []
         for n in names:
             if n[0] == '.':
-                if parent == '':
+                if len(n) > 1 and n[1] == '.':
+                    grandparent = '.'.join(structure[0:-2])
+                    if len(n) == 2:
+                        n = grandparent
+                    elif parent == '' or grandparent == '':
+                        n = n[2:]
+                    else:
+                        n = grandparent + n[1:]
+                elif parent == '':
                     n = n[1:]
+                elif len(n) == 1:
+                    n = parent
                 else:
                     n = parent + n
             new_names.append(n)
diff --git a/reclass/tests/data/02/classes/one/alpha.yml b/reclass/tests/data/02/classes/one/alpha.yml
index a13cc5c..9eb13f4 100644
--- a/reclass/tests/data/02/classes/one/alpha.yml
+++ b/reclass/tests/data/02/classes/one/alpha.yml
@@ -1,7 +1,11 @@
 classes:
 - .beta
 - two.beta
+- ..three
+- ..two.delta
 
 parameters:
   test1: ${one_beta}
   test2: ${two_beta}
+  test3: ${three_alpha}
+  test4: ${two_gamma}
diff --git a/reclass/tests/data/02/classes/three.yml b/reclass/tests/data/02/classes/three.yml
index 987fde0..940603c 100644
--- a/reclass/tests/data/02/classes/three.yml
+++ b/reclass/tests/data/02/classes/three.yml
@@ -1,2 +1,5 @@
 classes:
 - .one.alpha
+
+parameters:
+  three_alpha: 3
diff --git a/reclass/tests/data/02/classes/two/gamma.yml b/reclass/tests/data/02/classes/two/gamma.yml
new file mode 100644
index 0000000..a1d71da
--- /dev/null
+++ b/reclass/tests/data/02/classes/two/gamma.yml
@@ -0,0 +1,2 @@
+parameters:
+  two_gamma: 4
diff --git a/reclass/tests/test_core.py b/reclass/tests/test_core.py
index ced18e8..94f7ae8 100644
--- a/reclass/tests/test_core.py
+++ b/reclass/tests/test_core.py
@@ -68,7 +68,7 @@
     def test_top_relative_class_names(self):
         reclass = self._core('02')
         node = reclass.nodeinfo('top_relative')
-        params = { 'test1': 1, 'test2': 2, 'one_beta': 1, 'two_beta': 2, '_reclass_': { 'environment': 'base', 'name': { 'full': 'top_relative', 'short': 'top_relative' } } }
+        params = { 'test1': 1, 'test2': 2, 'test3': 3, 'test4': 4, 'one_beta': 1, 'two_beta': 2, 'three_aplha': 3, 'two_gamma': 4, '_reclass_': { 'environment': 'base', 'name': { 'full': 'top_relative', 'short': 'top_relative' } } }
         self.assertEqual(node['parameters'], params)
 
     def test_compose_node_names(self):
