diff --git a/src/main/java/com/android/tools/r8/graph/LookupResult.java b/src/main/java/com/android/tools/r8/graph/LookupResult.java
index e5c9381..9351618 100644
--- a/src/main/java/com/android/tools/r8/graph/LookupResult.java
+++ b/src/main/java/com/android/tools/r8/graph/LookupResult.java
@@ -118,26 +118,18 @@
       state = LookupResultCollectionState.Incomplete;
     }
 
-    public DexEncodedMethod getSingleLookupTarget() {
-      if (isIncomplete() || methodTargets.size() > 1) {
+    public LookupTarget getSingleLookupTarget() {
+      if (isIncomplete() || methodTargets.size() + lambdaTargets.size() > 1) {
         return null;
       }
       if (methodTargets.size() == 0 && lambdaTargets.size() == 0) {
         return null;
       }
-      DexEncodedMethod singleTarget = DexEncodedMethod.SENTINEL;
       if (methodTargets.size() == 1) {
-        singleTarget = methodTargets.keySet().iterator().next();
+        return methodTargets.values().iterator().next();
+      } else {
+        return lambdaTargets.get(0);
       }
-      for (LookupLambdaTarget lambdaTarget : lambdaTargets) {
-        DexEncodedMethod implementationMethod = lambdaTarget.getImplementationMethod().getMethod();
-        if (singleTarget != DexEncodedMethod.SENTINEL && implementationMethod != singleTarget) {
-          return null;
-        }
-        singleTarget = implementationMethod;
-      }
-      assert singleTarget != DexEncodedMethod.SENTINEL;
-      return singleTarget;
     }
 
     public enum LookupResultCollectionState {
diff --git a/src/main/java/com/android/tools/r8/shaking/AppInfoWithLiveness.java b/src/main/java/com/android/tools/r8/shaking/AppInfoWithLiveness.java
index 4234043..087f88c 100644
--- a/src/main/java/com/android/tools/r8/shaking/AppInfoWithLiveness.java
+++ b/src/main/java/com/android/tools/r8/shaking/AppInfoWithLiveness.java
@@ -31,6 +31,7 @@
 import com.android.tools.r8.graph.GraphLense.NestedGraphLense;
 import com.android.tools.r8.graph.InstantiatedSubTypeInfo;
 import com.android.tools.r8.graph.LookupResult.LookupResultSuccess;
+import com.android.tools.r8.graph.LookupTarget;
 import com.android.tools.r8.graph.ObjectAllocationInfoCollection;
 import com.android.tools.r8.graph.ObjectAllocationInfoCollectionImpl;
 import com.android.tools.r8.graph.PresortedComparable;
@@ -1229,9 +1230,13 @@
       return null;
     }
 
-    DexEncodedMethod singleTargetMethod = lookupResult.getSingleLookupTarget();
-    method.setSingleVirtualMethodCache(refinedReceiverType, singleTargetMethod);
-    return singleTargetMethod;
+    LookupTarget singleTarget = lookupResult.getSingleLookupTarget();
+    DexEncodedMethod singleMethodTarget = null;
+    if (singleTarget.isMethodTarget()) {
+      singleMethodTarget = singleTarget.asMethodTarget().getMethod();
+    }
+    method.setSingleVirtualMethodCache(refinedReceiverType, singleMethodTarget);
+    return singleMethodTarget;
   }
 
   public AppInfoWithLiveness withSwitchMaps(Map<DexField, Int2ReferenceMap<DexField>> switchMaps) {
