diff --git a/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/PatternMatching16Test.java b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/PatternMatching16Test.java
index 1800a00..3a59fc7 100644
--- a/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/PatternMatching16Test.java
+++ b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/PatternMatching16Test.java
@@ -3597,4 +3597,67 @@
 				true,
 				compilerOptions);
 	}
+	public void testBug570831a() {
+		Map<String, String> compilerOptions = getCompilerOptions(true);
+		runNegativeTest(
+				new String[] {
+						"X.java",
+							"public class X {\n"
+							+ "	public static void run() {\n"
+							+ "		String s = \"s\";\n"
+							+ "		Object o = null;\n"
+							+ "		{\n"
+							+ "			while (!(o instanceof String v)) {\n"
+							+ "				o = null;\n"
+							+ "			}\n"
+							+ "			s = s + v; // allowed\n"
+							+ "		}\n"
+							+ "		for (int i = 0; i < 1; i++) {\n"
+							+ "			s = s + v; // not allowed\n"
+							+ "		}\n"
+							+ "	}\n"
+							+ "}",
+				},
+				"----------\n" +
+				"1. ERROR in X.java (at line 12)\n" +
+				"	s = s + v; // not allowed\n" +
+				"	        ^\n" +
+				"v cannot be resolved to a variable\n" +
+				"----------\n",
+				null,
+				true,
+				compilerOptions);
+	}
+	public void testBug570831b() {
+		Map<String, String> compilerOptions = getCompilerOptions(true);
+		runNegativeTest(
+				new String[] {
+						"X.java",
+							"public class X {\n"
+							+ "	public static void run() {\n"
+							+ "		String s = \"s\";\n"
+							+ "		Object o = null;\n"
+							+ "		{\n"
+							+ "			int local = 0;\n"
+							+ "			while (!(o instanceof String v)) {\n"
+							+ "				o = null;\n"
+							+ "			}\n"
+							+ "			s = s + v; // allowed\n"
+							+ "		}\n"
+							+ "		for (int i = 0; i < 1; i++) {\n"
+							+ "			s = s + v; // not allowed\n"
+							+ "		}\n"
+							+ "	}\n"
+							+ "}",
+				},
+				"----------\n" +
+				"1. ERROR in X.java (at line 13)\n" +
+				"	s = s + v; // not allowed\n" +
+				"	        ^\n" +
+				"v cannot be resolved to a variable\n" +
+				"----------\n",
+				null,
+				true,
+				compilerOptions);
+	}
 }
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/Parser.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/Parser.java
index cf92a65..b9692c9 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/Parser.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/Parser.java
@@ -4628,6 +4628,9 @@
 	this.expressionLengthPtr--;
 	LocalDeclaration local = getInstanceOfVar(typeRef);
 	pushOnPatternStack(local);
+	// Only if we are not inside a block
+	if (this.realBlockPtr != -1)
+		blockReal();
 }
 protected void consumeInstanceOfExpressionWithName() {
 	// RelationalExpression_NotName ::= Name instanceof ReferenceType
