diff --git a/src/main/java/com/android/tools/r8/ir/optimize/lambda/LambdaMerger.java b/src/main/java/com/android/tools/r8/ir/optimize/lambda/LambdaMerger.java
index 8fee6c5..a5e9d5c4 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/lambda/LambdaMerger.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/lambda/LambdaMerger.java
@@ -234,7 +234,9 @@
                 cls.hasKotlinInfo()
                     && cls.getKotlinInfo().isSyntheticClass()
                     && cls.getKotlinInfo().asSyntheticClass().isLambda()
-                    && KotlinLambdaGroupIdFactory.hasValidAnnotations(kotlin, cls))
+                    && KotlinLambdaGroupIdFactory.hasValidAnnotations(kotlin, cls)
+                    && (appView.options().featureSplitConfiguration == null
+                        || !appView.options().featureSplitConfiguration.isInFeature(cls)))
         .sorted((a, b) -> a.type.slowCompareTo(b.type)) // Ensure stable ordering.
         .forEachOrdered(
             lambda -> {
diff --git a/src/test/java/com/android/tools/r8/kotlin/lambda/b148525512/B148525512.java b/src/test/java/com/android/tools/r8/kotlin/lambda/b148525512/B148525512.java
index 405d65c..a06dcf8 100644
--- a/src/test/java/com/android/tools/r8/kotlin/lambda/b148525512/B148525512.java
+++ b/src/test/java/com/android/tools/r8/kotlin/lambda/b148525512/B148525512.java
@@ -7,6 +7,7 @@
 import static com.android.tools.r8.KotlinCompilerTool.KOTLINC;
 import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
 import static junit.framework.TestCase.assertEquals;
+import static junit.framework.TestCase.assertTrue;
 import static org.hamcrest.CoreMatchers.equalTo;
 import static org.hamcrest.MatcherAssert.assertThat;
 
@@ -15,7 +16,6 @@
 import com.android.tools.r8.R8TestCompileResult;
 import com.android.tools.r8.TestParameters;
 import com.android.tools.r8.ToolHelper;
-import com.android.tools.r8.ToolHelper.DexVm.Version;
 import com.android.tools.r8.ToolHelper.KotlinTargetVersion;
 import com.android.tools.r8.utils.ArchiveResourceProvider;
 import com.android.tools.r8.utils.codeinspector.CodeInspector;
@@ -102,16 +102,15 @@
                 instruction ->
                     instruction.asCheckCast().getType().toSourceString().contains("Base"))
             .count());
-    // TODO(b/148525512): The lambda group has 2 captures which capture "Feature".
-    assertEquals(
-        2,
+    // The lambda group has no captures which capture "Feature" (lambdas in the feature are not
+    // in this lambda group).
+    assertTrue(
         invokeMethod
             .streamInstructions()
             .filter(InstructionSubject::isCheckCast)
-            .filter(
+            .noneMatch(
                 instruction ->
-                    instruction.asCheckCast().getType().toSourceString().contains("Feature"))
-            .count());
+                    instruction.asCheckCast().getType().toSourceString().contains("Feature")));
   }
 
   @Test
@@ -142,12 +141,6 @@
                 equalTo("Resource 'META-INF/MANIFEST.MF' already exists."))
             .inspect(this::checkLambdaGroups);
 
-    // TODO(b/148525512): Fails on 7.0.0 and 8.1.0.
-    if (parameters.getRuntime().asDex().getVm().getVersion() == Version.V7_0_0
-        || parameters.getRuntime().asDex().getVm().getVersion() == Version.V8_1_0) {
-      return;
-    }
-
     // Run the code without the feature code present.
     compileResult
         .run(parameters.getRuntime(), baseKtClassName)
