diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/java/ControlFlowAnalyzer.java b/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/java/ControlFlowAnalyzer.java
index 8ffe57228ed7..875720ed0832 100644
--- a/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/java/ControlFlowAnalyzer.java
+++ b/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/java/ControlFlowAnalyzer.java
@@ -2172,6 +2172,8 @@ public class ControlFlowAnalyzer extends JavaElementVisitor {
}
PsiPrimitiveType unboxedType = PsiPrimitiveType.getOptionallyUnboxedType(operandType);
if (unboxedType == null) {
+ // Unknown type; likely erroneous code: replace old_value with unknown
+ addInstruction(new PopInstruction());
pushUnknown();
} else {
generateBoxingUnboxingInstructionFor(operand, unboxedType);
diff --git a/java/java-tests/testData/inspection/dataFlow/fixture/IncompleteLoop.java b/java/java-tests/testData/inspection/dataFlow/fixture/IncompleteLoop.java
new file mode 100644
index 000000000000..2d7350316144
--- /dev/null
+++ b/java/java-tests/testData/inspection/dataFlow/fixture/IncompleteLoop.java
@@ -0,0 +1,10 @@
+import java.util.*;
+
+class Test {
+
+ void test(int last)
+ {
+ for (; i < last; i++) {
+ }
+ }
+}
\ No newline at end of file
diff --git a/java/java-tests/testSrc/com/intellij/java/codeInspection/DataFlowRangeAnalysisTest.java b/java/java-tests/testSrc/com/intellij/java/codeInspection/DataFlowRangeAnalysisTest.java
index 701e3118a9dc..c93b80d58297 100644
--- a/java/java-tests/testSrc/com/intellij/java/codeInspection/DataFlowRangeAnalysisTest.java
+++ b/java/java-tests/testSrc/com/intellij/java/codeInspection/DataFlowRangeAnalysisTest.java
@@ -89,4 +89,5 @@ public class DataFlowRangeAnalysisTest extends DataFlowInspectionTestCase {
public void testFloatingPointCasts() { doTest(); }
public void testFloatingPointMaxLoop() { doTest(); }
public void testStringIndexOfRelation() { doTest(); }
+ public void testIncompleteLoop() { doTest(); }
}