diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosticCompilerTestFE10TestdataTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosticCompilerTestFE10TestdataTestGenerated.java
index 75897cf..4c37c88 100644
--- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosticCompilerTestFE10TestdataTestGenerated.java
+++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosticCompilerTestFE10TestdataTestGenerated.java
@@ -4211,6 +4211,12 @@
       }
 
       @Test
+      @TestMetadata("lambdaBelongsToOuterCall.kt")
+      public void testLambdaBelongsToOuterCall() {
+        runTest("compiler/testData/diagnostics/tests/builderInference/lambdaBelongsToOuterCall.kt");
+      }
+
+      @Test
       @TestMetadata("overloadResolutionByLambdaReturnType.kt")
       public void testOverloadResolutionByLambdaReturnType() {
         runTest("compiler/testData/diagnostics/tests/builderInference/overloadResolutionByLambdaReturnType.kt");
diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated.java
index ebb21d9..aab8699 100644
--- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated.java
+++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated.java
@@ -4211,6 +4211,12 @@
       }
 
       @Test
+      @TestMetadata("lambdaBelongsToOuterCall.kt")
+      public void testLambdaBelongsToOuterCall() {
+        runTest("compiler/testData/diagnostics/tests/builderInference/lambdaBelongsToOuterCall.kt");
+      }
+
+      @Test
       @TestMetadata("overloadResolutionByLambdaReturnType.kt")
       public void testOverloadResolutionByLambdaReturnType() {
         runTest("compiler/testData/diagnostics/tests/builderInference/overloadResolutionByLambdaReturnType.kt");
diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeOldFrontendDiagnosticsTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeOldFrontendDiagnosticsTestGenerated.java
index 72d695c..4ce3220 100644
--- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeOldFrontendDiagnosticsTestGenerated.java
+++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeOldFrontendDiagnosticsTestGenerated.java
@@ -4205,6 +4205,12 @@
       }
 
       @Test
+      @TestMetadata("lambdaBelongsToOuterCall.kt")
+      public void testLambdaBelongsToOuterCall() {
+        runTest("compiler/testData/diagnostics/tests/builderInference/lambdaBelongsToOuterCall.kt");
+      }
+
+      @Test
       @TestMetadata("overloadResolutionByLambdaReturnType.kt")
       public void testOverloadResolutionByLambdaReturnType() {
         runTest("compiler/testData/diagnostics/tests/builderInference/overloadResolutionByLambdaReturnType.kt");
diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiOldFrontendDiagnosticsTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiOldFrontendDiagnosticsTestGenerated.java
index 1f65063..ae32fe9 100644
--- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiOldFrontendDiagnosticsTestGenerated.java
+++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiOldFrontendDiagnosticsTestGenerated.java
@@ -4211,6 +4211,12 @@
       }
 
       @Test
+      @TestMetadata("lambdaBelongsToOuterCall.kt")
+      public void testLambdaBelongsToOuterCall() {
+        runTest("compiler/testData/diagnostics/tests/builderInference/lambdaBelongsToOuterCall.kt");
+      }
+
+      @Test
       @TestMetadata("overloadResolutionByLambdaReturnType.kt")
       public void testOverloadResolutionByLambdaReturnType() {
         runTest("compiler/testData/diagnostics/tests/builderInference/overloadResolutionByLambdaReturnType.kt");
diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/inference/FirCallCompleter.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/inference/FirCallCompleter.kt
index f12c4f8..3e0aa25 100644
--- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/inference/FirCallCompleter.kt
+++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/inference/FirCallCompleter.kt
@@ -109,16 +109,7 @@
                 runCompletionForCall(candidate, completionMode, call, initialType, analyzer)
 
                 val readOnlyConstraintStorage = candidate.system.asReadOnlyStorage()
-                if (inferenceSession !is FirPCLAInferenceSession) {
-                    // With FirPCLAInferenceSession we either have here a situation when the candidate system uses
-                    // an outer system, and completionMode is PCLA_POSTPONED_CALL (see customCompletionModeInsteadOfFull);
-                    // or, the candidate system does not use an outer system; then the PCLA common system is somewhere on top,
-                    // and after fixing type variables of this candidate we still may have some unfixed variables from the common system
-                    // TODO: KT-69040. We think some better decision is possible here, e.g. in a situation when the candidate system
-                    // does not use an outer system either the completionMode should not be FULL,
-                    // or it should not be added as a "base" system.
-                    checkStorageConstraintsAfterFullCompletion(readOnlyConstraintStorage)
-                }
+                checkStorageConstraintsAfterFullCompletion(readOnlyConstraintStorage)
 
                 val finalSubstitutor = readOnlyConstraintStorage
                     .buildAbstractResultingSubstitutor(session.typeContext) as ConeSubstitutor
@@ -435,7 +426,7 @@
 
             transformer.context.withAnonymousFunctionTowerDataContext(lambdaArgument.symbol) {
                 val pclaInferenceSession =
-                    runIf(withPCLASession) {
+                    runIf(withPCLASession || (transformer.context.inferenceSession as? FirPCLAInferenceSession)?.isDisposed == true) {
                         candidate.lambdasAnalyzedWithPCLA += lambdaArgument
 
                         FirPCLAInferenceSession(candidate, session.inferenceComponents)
diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/inference/FirPCLAInferenceSession.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/inference/FirPCLAInferenceSession.kt
index af4bcb1..2ec18ae 100644
--- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/inference/FirPCLAInferenceSession.kt
+++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/inference/FirPCLAInferenceSession.kt
@@ -37,6 +37,9 @@
     var currentCommonSystem: NewConstraintSystemImpl = prepareSharedBaseSystem(outerCandidate.system, inferenceComponents)
         private set
 
+    var isDisposed = false
+        private set
+
     override fun baseConstraintStorageForCandidate(candidate: Candidate, bodyResolveContext: BodyResolveContext): ConstraintStorage? {
         if (candidate.mightBeAnalyzedAndCompletedIndependently(bodyResolveContext.returnTypeCalculator)) return null
 
@@ -115,7 +118,9 @@
     }
 
     fun applyResultsToMainCandidate() {
+        check(!isDisposed)
         outerCandidate.system.replaceContentWith(currentCommonSystem.currentStorage())
+        isDisposed = true
     }
 
     fun integrateChildSession(
diff --git a/compiler/testData/diagnostics/tests/builderInference/lambdaBelongsToOuterCall.kt b/compiler/testData/diagnostics/tests/builderInference/lambdaBelongsToOuterCall.kt
new file mode 100644
index 0000000..1c39015
--- /dev/null
+++ b/compiler/testData/diagnostics/tests/builderInference/lambdaBelongsToOuterCall.kt
@@ -0,0 +1,39 @@
+// FIR_IDENTICAL
+// ISSUE: KT-69040
+
+interface Controller<T> {
+    fun add(t: T)
+}
+
+fun <T1, R1> T1.foo(g: (T1) -> R1): R1 = TODO()
+fun <T2> Controller<T2>.get(): T2 = TODO()
+
+fun <BK, BV> build(
+    transformer: (Controller<BK>) -> BV,
+): BV = TODO()
+
+//fun test1() {
+//    build { c ->
+//        c.add("")
+//
+//        c.foo {
+//            c.get()
+//        }
+//    }
+//}
+
+interface Base
+interface A : Base
+interface B : Base
+
+fun test2(a: A, b: B) {
+    val x = build { c ->
+        c.foo {
+            c.add(a)
+            c.add(b)
+            c.get()
+        }
+    }
+
+    <!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int")!>x<!>
+}
diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java
index e2e2efc..f8c4e01 100644
--- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java
+++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java
@@ -4211,6 +4211,12 @@
       }
 
       @Test
+      @TestMetadata("lambdaBelongsToOuterCall.kt")
+      public void testLambdaBelongsToOuterCall() {
+        runTest("compiler/testData/diagnostics/tests/builderInference/lambdaBelongsToOuterCall.kt");
+      }
+
+      @Test
       @TestMetadata("overloadResolutionByLambdaReturnType.kt")
       public void testOverloadResolutionByLambdaReturnType() {
         runTest("compiler/testData/diagnostics/tests/builderInference/overloadResolutionByLambdaReturnType.kt");
