diff --git a/lib/Block.js b/lib/Block.js
index <HASH>..<HASH> 100644
--- a/lib/Block.js
+++ b/lib/Block.js
@@ -741,9 +741,20 @@ function createBlock({ node, after, parent, parentBlock, parentScope }) {
       [node.itemName]: node.item,
       [node.indexName]: node.index
     };
+    let parent = blockInstance;
+    let scope = parentScope;
+    let DItemFound;
+
+    while (!DItemFound && (parent = parent.$$.parentBlock)) {
+      DItemFound = parent.$$.name === '#d-item';
+    }
+
+    if (DItemFound) {
+      scope = parent.$$.scope;
+    }
 
     $$.privateScope = constructPrivateScope(scopeValues);
-    constructPublicScope($$.scope = Object.create(parentScope), scopeValues, $$.privateScope);
+    constructPublicScope($$.scope = Object.create(scope), scopeValues, $$.privateScope);
   }
 
   if (name === 'd-each') {
Fix nested d-each.