diff --git a/src/tokencontext.js b/src/tokencontext.js
index <HASH>..<HASH> 100644
--- a/src/tokencontext.js
+++ b/src/tokencontext.js
@@ -46,6 +46,8 @@ pp.braceIsBlock = function(prevType) {
     return true
   if (prevType == tt.braceL)
     return this.curContext() === types.b_stat
+  if (prevType == tt._var || prevType == tt.name)
+    return false
   return !this.exprAllowed
 }
 
diff --git a/test/tests-harmony.js b/test/tests-harmony.js
index <HASH>..<HASH> 100644
--- a/test/tests-harmony.js
+++ b/test/tests-harmony.js
@@ -15666,6 +15666,10 @@ test("[...foo, bar = 1]", {}, {ecmaVersion: 6})
 
 test("for (var a of /b/) {}", {}, {ecmaVersion: 6})
 
+test("for (var {a} of /b/) {}", {}, {ecmaVersion: 6})
+
+test("for (let {a} of /b/) {}", {}, {ecmaVersion: 6})
+
 test("function* bar() { yield /re/ }", {}, {ecmaVersion: 6})
 
 test("() => {}\n/re/", {}, {ecmaVersion: 6})
Fix token context for braces after let/var/const

Issue #<I>