MAYBE?
diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrDeclarationDeserializer.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrDeclarationDeserializer.kt
index 9e54bc0..54665af 100644
--- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrDeclarationDeserializer.kt
+++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrDeclarationDeserializer.kt
@@ -267,7 +267,7 @@
             )
             // avoid duplicate annotations for local variables
             result.annotations = deserializeAnnotations(proto.annotationList)
-            if (setParent) {
+            if (setParent && ((uid as? IdSignature.CommonSignature)?.nameSegments?.size?.let { it > 1 } != false)) {
                 result.parent = currentParent
             }
             return result
diff --git a/compiler/ir/serialization.jvm/src/org/jetbrains/kotlin/backend/jvm/serialization/deserializeLazyDeclarations.kt b/compiler/ir/serialization.jvm/src/org/jetbrains/kotlin/backend/jvm/serialization/deserializeLazyDeclarations.kt
index 4f29e27..a71743c 100644
--- a/compiler/ir/serialization.jvm/src/org/jetbrains/kotlin/backend/jvm/serialization/deserializeLazyDeclarations.kt
+++ b/compiler/ir/serialization.jvm/src/org/jetbrains/kotlin/backend/jvm/serialization/deserializeLazyDeclarations.kt
@@ -93,24 +93,7 @@
         internationService = internationService
     )
     for (declarationProto in irProto.declarationList) {
-        val declaration = deserializer.deserializeDeclaration(declarationProto, setParent = false)
-        val parent = try {
-            declaration.parent
-        } catch (_: UninitializedPropertyAccessException) {
-            // HERE IS AN EXPLANATION:
-            // If declaration.parent has a parent by itself, then such a parent is its inner class parent
-            // If it does not, then it is a function in toplevelParent not knowing about it...
-            //
-            // We have no other way to check whether parent was set or not.
-            declaration.parent = toplevelParent
-            declaration.parent
-        }
-
-        if (parent is IrDeclarationContainer) {
-            if (declaration !in parent.declarations) {
-                parent.declarations += declaration
-            }
-        }
+        deserializer.deserializeDeclaration(declarationProto, setParent = true)
     }
 
     symbolTable.signaturer.withFileSignature(dummyFileSignature) {
diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/codegen/AbstractCompileKotlinAgainstInlineKotlinTest.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/codegen/AbstractCompileKotlinAgainstInlineKotlinTest.kt
index 579b04e..4cffba7 100644
--- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/codegen/AbstractCompileKotlinAgainstInlineKotlinTest.kt
+++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/codegen/AbstractCompileKotlinAgainstInlineKotlinTest.kt
@@ -90,7 +90,7 @@
 
 private fun TestConfigurationBuilder.configureForSerialization() {
     defaultDirectives {
-        SERIALIZE_IR.with(JvmSerializeIrMode.INLINE)
+        SERIALIZE_IR.with(JvmSerializeIrMode.ALL)
         +LINK_VIA_SIGNATURES
     }