diff --git a/src/main/java/com/android/tools/r8/ir/optimize/lambda/kotlin/KStyleLambdaGroup.java b/src/main/java/com/android/tools/r8/ir/optimize/lambda/kotlin/KStyleLambdaGroup.java
index 587e17211..df34df877 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/lambda/kotlin/KStyleLambdaGroup.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/lambda/kotlin/KStyleLambdaGroup.java
@@ -199,13 +199,18 @@ final class KStyleLambdaGroup extends KotlinLambdaGroup {
     @Override
     SyntheticSourceCode createInstanceInitializerSourceCode(
         DexType groupClassType, DexMethod initializerMethod, Position callerPosition) {
+      int arity = factory.kotlin.functional.getArity(id.iface);
+      if (arity != id.mainMethodProto.parameters.size()) {
+        System.out.println(
+            "[R8 logging]: " + id.mainMethod.getCode().toString(id.mainMethod, null));
+      }
       return new InstanceInitializerSourceCode(
           factory,
           groupClassType,
           group.getLambdaIdField(factory),
           id -> group.getCaptureField(factory, id),
           initializerMethod,
-          id.mainMethodProto.parameters.size(),
+          arity,
           callerPosition);
     }
   }
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/lambda/kotlin/KotlinLambdaGroupId.java b/src/main/java/com/android/tools/r8/ir/optimize/lambda/kotlin/KotlinLambdaGroupId.java
index 996099bc2..a02a5ef8c 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/lambda/kotlin/KotlinLambdaGroupId.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/lambda/kotlin/KotlinLambdaGroupId.java
@@ -38,6 +38,7 @@ abstract class KotlinLambdaGroupId implements LambdaGroupId {
   // (the main method if created is supposed to be inlined, since it is always
   //  only called from the bridge, and removed. In this case the method with
   //  signature and annotations is removed allowing more lambda to be merged.)
+  final DexEncodedMethod mainMethod;
   final DexString mainMethodName;
   final DexProto mainMethodProto;
   final DexAnnotationSet mainMethodAnnotations;
@@ -58,6 +59,7 @@ abstract class KotlinLambdaGroupId implements LambdaGroupId {
     this.iface = iface;
     this.pkg = pkg;
     this.signature = signature;
+    this.mainMethod = mainMethod;
     this.mainMethodName = mainMethod.method.name;
     this.mainMethodProto = mainMethod.method.proto;
     this.mainMethodAnnotations = mainMethod.annotations;
diff --git a/src/main/java/com/android/tools/r8/kotlin/Kotlin.java b/src/main/java/com/android/tools/r8/kotlin/Kotlin.java
index 0a85f89fd..a4e474589 100644
--- a/src/main/java/com/android/tools/r8/kotlin/Kotlin.java
+++ b/src/main/java/com/android/tools/r8/kotlin/Kotlin.java
@@ -13,6 +13,8 @@ import com.android.tools.r8.graph.DexType;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Sets;
 import java.util.Set;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 /** Class provides basic information about symbols related to Kotlin support. */
 public final class Kotlin {
@@ -75,6 +77,16 @@ public final class Kotlin {
     public boolean isFunctionInterface(DexType type) {
       return functions.contains(type);
     }
+
+    public int getArity(DexType type) {
+      assert isFunctionInterface(type);
+      Pattern p = Pattern.compile("Function(\\d+)");
+      Matcher m = p.matcher(type.toDescriptorString());
+      if (m.find()) {
+        return Integer.parseInt(m.group(1));
+      }
+      return -1;
+    }
   }
 
   public final class Metadata {