diff --git a/lib/level.js b/lib/level.js
index <HASH>..<HASH> 100644
--- a/lib/level.js
+++ b/lib/level.js
@@ -973,6 +973,7 @@ var Level = exports.Level = INHERIT(/** @lends Level.prototype */{
         dirs.forEach(function(dir) {
             if (_this.isElemDir(dir)) return _this.scanElem(path, block, dir, items);
             if (_this.isModDir(dir)) return _this.scanMod(path, block, null, dir, items);
+            if (dir.substr(0, blockPartL) !== blockPart) return;
 
             var suffix = dir.substr(blockPartL - 1);
 
@@ -1031,6 +1032,7 @@ var Level = exports.Level = INHERIT(/** @lends Level.prototype */{
 
         dirs.forEach(function(d) {
             if (_this.isModDir(d)) return _this.scanMod(path, block, elem, d, items);
+            if (d.substr(0, blockPartL) !== blockPart) return;
 
             files = [];
level scanner: filter out block/somedir and block/elem/somedir dirs not qualifying as block content