diff --git a/idea/src/org/jetbrains/kotlin/idea/inspections/CanBeValInspection.kt b/idea/src/org/jetbrains/kotlin/idea/inspections/CanBeValInspection.kt
index 535fd846733..696cf73ed0a 100644
--- a/idea/src/org/jetbrains/kotlin/idea/inspections/CanBeValInspection.kt
+++ b/idea/src/org/jetbrains/kotlin/idea/inspections/CanBeValInspection.kt
@@ -98,7 +98,7 @@ class CanBeValInspection : AbstractKotlinInspection() {
var instruction = from
while (instruction is InstructionWithNext) {
val next = instruction.next ?: return false
- if (next in visited) continue
+ if (next in visited) return false
if (next in targets) return true
visited.add(next)
instruction = next
diff --git a/idea/testData/inspections/canBeVal/inspectionData/expected.xml b/idea/testData/inspections/canBeVal/inspectionData/expected.xml
index 5ec5cf9612d..1d57b430a09 100644
--- a/idea/testData/inspections/canBeVal/inspectionData/expected.xml
+++ b/idea/testData/inspections/canBeVal/inspectionData/expected.xml
@@ -61,4 +61,13 @@
Local 'var' can be declared as 'val'
Can be declared as 'val'
+
+
+ kt11891.kt
+ 2
+ light_idea_test_case
+
+ Local 'var' can be declared as 'val'
+ Can be declared as 'val'
+
diff --git a/idea/testData/inspections/canBeVal/kt11891.kt b/idea/testData/inspections/canBeVal/kt11891.kt
new file mode 100644
index 00000000000..6849cdd794e
--- /dev/null
+++ b/idea/testData/inspections/canBeVal/kt11891.kt
@@ -0,0 +1,12 @@
+fun main(args: Array) {
+ var a: String?
+
+ if (args.size == 1) {
+ a = args[0]
+ }
+ else {
+ a = args.toString()
+ }
+
+ if (a != null && a.equals("cde")) return
+}