diff --git a/test/fixtures/events.json b/test/fixtures/events.json
index 064c76c69..4b7573504 100644
--- a/test/fixtures/events.json
+++ b/test/fixtures/events.json
@@ -11,5 +11,16 @@
             "z!+#Nqr,_(V=xz0y7a@d",
             "!6Ahqg4f}Ljl}X5Hws?Z"
         ]
+    },
+    "createsubstack": {
+        "name": "block",
+        "xml": {
+            "outerHTML": "<block type=\"control_forever\" id=\"r9`RpL74T6*SXPKv7}Dq\" x=\"61\" y=\"90\"><statement name=\"SUBSTACK\"><block type=\"control_wait\" id=\"{Rwt[LFtD1-JPAi-qf:.\"><value name=\"DURATION\"><shadow type=\"math_number\" id=\"VMDxt_9SYe5{*eNRe5dZ\"><field name=\"NUM\">1</field></shadow></value></block></statement></block>"
+        },
+        "ids": [
+            "r9`RpL74T6*SXPKv7}Dq",
+            "{Rwt[LFtD1-JPAi-qf:.",
+            "VMDxt_9SYe5{*eNRe5dZ"
+        ]
     }
 }
diff --git a/test/unit/adapter.js b/test/unit/adapter.js
index 31e904845..44ea13928 100644
--- a/test/unit/adapter.js
+++ b/test/unit/adapter.js
@@ -34,3 +34,27 @@ test('create event', function (t) {
 
     t.end();
 });
+
+test('create with substack', function (t) {
+    var result = adapter(events.createsubstack);
+    // Outer block
+    t.type(result[0].id, 'string');
+    t.type(result[0].opcode, 'string');
+    t.type(result[0].fields, 'object');
+    t.type(result[0].inputs, 'object');
+    t.type(result[0].inputs['SUBSTACK'], 'object');
+    t.type(result[0].topLevel, 'boolean');
+    t.equal(result[0].topLevel, true);
+    // In substack
+    var substackBlockId = result[0].inputs['SUBSTACK']['block'];
+    t.type(substackBlockId, 'string');
+    // Find actual substack block
+    var substackBlock = null;
+    for (var i = 0; i < result.length; i++) {
+        if (result[i].id == substackBlockId) {
+            substackBlock = result[i];
+        }
+    }
+    t.type(substackBlock, 'object');
+    t.end();
+});