diff --git a/core/descriptors/src/org/jetbrains/kotlin/descriptors/Modality.kt b/core/descriptors/src/org/jetbrains/kotlin/descriptors/Modality.kt
index 31da0171cb1..92da094b708 100644
--- a/core/descriptors/src/org/jetbrains/kotlin/descriptors/Modality.kt
+++ b/core/descriptors/src/org/jetbrains/kotlin/descriptors/Modality.kt
@@ -39,7 +39,9 @@ enum class Modality {
}
val CallableMemberDescriptor.isOverridable: Boolean
- get() = modality != Modality.FINAL && (containingDeclaration as? ClassDescriptor)?.isFinalClass != true
+ get() = visibility != Visibilities.PRIVATE
+ && modality != Modality.FINAL
+ && (containingDeclaration as? ClassDescriptor)?.isFinalClass != true
val CallableMemberDescriptor.isOverridableOrOverrides: Boolean
get() = isOverridable || DescriptorUtils.isOverride(this)
diff --git a/idea/testData/inspections/leakingThis/inspectionData/expected.xml b/idea/testData/inspections/leakingThis/inspectionData/expected.xml
index ce14409a7c1..ed1815d2b65 100644
--- a/idea/testData/inspections/leakingThis/inspectionData/expected.xml
+++ b/idea/testData/inspections/leakingThis/inspectionData/expected.xml
@@ -23,4 +23,12 @@
Leaking 'this' in constructor
Accessing non-final property x in constructor
+
+ test.kt
+ 67
+ light_idea_test_case
+
+ Leaking 'this' in constructor
+ Accessing non-final property y in constructor
+
diff --git a/idea/testData/inspections/leakingThis/test.kt b/idea/testData/inspections/leakingThis/test.kt
index deb9cb25b2b..24b5b69c00d 100644
--- a/idea/testData/inspections/leakingThis/test.kt
+++ b/idea/testData/inspections/leakingThis/test.kt
@@ -54,3 +54,17 @@ class Fourth {
val y = x // null!
}
+
+annotation class AllOpen
+
+@AllOpen
+class A {
+ private val x = "A" + System.currentTimeMillis()
+ val y = "A" + System.currentTimeMillis()
+
+ init {
+ x.toByteArray()
+ y.toByteArray()
+ }
+
+}
\ No newline at end of file