diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/ControlFlowAnalyzer.java b/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/ControlFlowAnalyzer.java
index daca79be201e..35afab6ed13c 100644
--- a/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/ControlFlowAnalyzer.java
+++ b/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/ControlFlowAnalyzer.java
@@ -1891,7 +1891,7 @@ public class ControlFlowAnalyzer extends JavaElementVisitor {
@Override public void visitPrefixExpression(PsiPrefixExpression expression) {
startElement(expression);
- DfaValue dfaValue = myFactory.createValue(expression);
+ DfaValue dfaValue = expression.getOperationTokenType() == JavaTokenType.EXCL ? null : myFactory.createValue(expression);
if (dfaValue != null) {
// Constant expression is computed: just push the result
addInstruction(new PushInstruction(dfaValue, expression));
diff --git a/java/java-tests/testData/inspection/dataFlow/fixture/DoubleNaN.java b/java/java-tests/testData/inspection/dataFlow/fixture/DoubleNaN.java
index 714035000412..f363d23a257f 100644
--- a/java/java-tests/testData/inspection/dataFlow/fixture/DoubleNaN.java
+++ b/java/java-tests/testData/inspection/dataFlow/fixture/DoubleNaN.java
@@ -6,4 +6,9 @@ public class DoubleNaN {
System.out.println("oops");
}
}
+
+ void test2() {
+ System.out.println(1.0 == Double.NaN);
+ System.out.println(!(1.0 < Double.NaN));
+ }
}
\ No newline at end of file