diff --git a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightControlFlowUtil.java b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightControlFlowUtil.java
index 68455f8a40f7..9233f8e29792 100644
--- a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightControlFlowUtil.java
+++ b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightControlFlowUtil.java
@@ -652,7 +652,8 @@ public class HighlightControlFlowUtil {
if (!containingFile.getManager().areElementsEquivalent(enclosingCtrOrInitializer.getContainingClass(), field.getContainingClass())) return false;
PsiExpression qualifierExpression = reference.getQualifierExpression();
- return qualifierExpression == null || qualifierExpression instanceof PsiThisExpression;
+ return qualifierExpression == null || (qualifierExpression instanceof PsiThisExpression &&
+ ((PsiThisExpression)qualifierExpression).getQualifier() == null);
}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/AssignToFinal.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/AssignToFinal.java
index e1a9652491a6..d5961186d915 100644
--- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/AssignToFinal.java
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/AssignToFinal.java
@@ -243,3 +243,12 @@ class AssignmentInUnreachablePolyadic {
else if (true && (bbbb = false)) ;
}
}
+
+class QualifiedThis {
+ final int x;
+
+ QualifiedThis() {
+ QualifiedThis.this.x = 5;
+ this.x = 5;
+ }
+}
\ No newline at end of file