diff --git a/src/main/java/com/android/tools/r8/Version.java b/src/main/java/com/android/tools/r8/Version.java
index 8a35a7d..5d31bab 100644
--- a/src/main/java/com/android/tools/r8/Version.java
+++ b/src/main/java/com/android/tools/r8/Version.java
@@ -11,7 +11,7 @@
 
   // This field is accessed from release scripts using simple pattern matching.
   // Therefore, changing this field could break our release scripts.
-  public static final String LABEL = "1.4.65";
+  public static final String LABEL = "1.4.66";
 
   private Version() {
   }
diff --git a/src/main/java/com/android/tools/r8/ir/conversion/LensCodeRewriter.java b/src/main/java/com/android/tools/r8/ir/conversion/LensCodeRewriter.java
index fd968d6..d634827 100644
--- a/src/main/java/com/android/tools/r8/ir/conversion/LensCodeRewriter.java
+++ b/src/main/java/com/android/tools/r8/ir/conversion/LensCodeRewriter.java
@@ -6,6 +6,7 @@
 import static com.android.tools.r8.graph.UseRegistry.MethodHandleUse.ARGUMENT_TO_LAMBDA_METAFACTORY;
 import static com.android.tools.r8.graph.UseRegistry.MethodHandleUse.NOT_ARGUMENT_TO_LAMBDA_METAFACTORY;
 import static com.android.tools.r8.ir.code.Invoke.Type.STATIC;
+import static com.android.tools.r8.ir.code.Invoke.Type.VIRTUAL;
 
 import com.android.tools.r8.errors.Unreachable;
 import com.android.tools.r8.graph.AppInfoWithSubtyping;
@@ -149,7 +150,31 @@
           InvokeMethod invoke = current.asInvokeMethod();
           DexMethod invokedMethod = invoke.getInvokedMethod();
           DexType invokedHolder = invokedMethod.getHolder();
+          if (invokedHolder.isArrayType()) {
+            if (invokedMethod.name == appInfo.dexItemFactory.cloneMethodName) {
+              DexType baseType = invokedHolder.toBaseType(appInfo.dexItemFactory);
+              DexType mappedBaseType = graphLense.lookupType(baseType);
+              if (baseType != mappedBaseType) {
+                DexType mappedHolder =
+                    invokedHolder.replaceBaseType(mappedBaseType, appInfo.dexItemFactory);
+                // The clone proto is ()Ljava/lang/Object;, so just reuse it.
+                DexMethod actualTarget =
+                    appInfo.dexItemFactory.createMethod(
+                        mappedHolder, invokedMethod.proto, appInfo.dexItemFactory.cloneMethodName);
+                Invoke newInvoke =
+                    Invoke.create(
+                        VIRTUAL,
+                        actualTarget,
+                        null,
+                        makeOutValue(invoke, code, newSSAValues),
+                        invoke.inValues());
+                iterator.replaceCurrentInstruction(newInvoke);
+              }
+            }
+            continue;
+          }
           if (!invokedHolder.isClassType()) {
+            assert false;
             continue;
           }
           if (invoke.isInvokeDirect()) {
diff --git a/src/test/java/com/android/tools/r8/naming/applymapping/InnerEnumValuesTest.java b/src/test/java/com/android/tools/r8/naming/applymapping/InnerEnumValuesTest.java
index 2500be1..08d0ff3 100644
--- a/src/test/java/com/android/tools/r8/naming/applymapping/InnerEnumValuesTest.java
+++ b/src/test/java/com/android/tools/r8/naming/applymapping/InnerEnumValuesTest.java
@@ -79,10 +79,9 @@
                   : "state_X"; // mapped name without minification
           FieldSubject stateA = enumSubject.uniqueFieldWithName(fieldName);
           assertThat(stateA, isPresent());
-        });
-    // TODO(b/124177369): method signature Object Outer$InnerEnum[]#clone() left in values().
-    //  .run(MAIN)
-    //  .assertSuccessWithOutput(EXPECTED_OUTPUT);
+        })
+        .run(MAIN)
+        .assertSuccessWithOutput(EXPECTED_OUTPUT);
   }
 }
 
