diff --git a/src/main/java/com/android/tools/r8/Version.java b/src/main/java/com/android/tools/r8/Version.java
index b3d7797..b714708 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.5.47";
+  public static final String LABEL = "1.5.48";
 
   private Version() {
   }
diff --git a/src/test/java/com/android/tools/r8/internal/R8GMSCoreLookupTest.java b/src/test/java/com/android/tools/r8/internal/R8GMSCoreLookupTest.java
index d4cec12..b451b48 100644
--- a/src/test/java/com/android/tools/r8/internal/R8GMSCoreLookupTest.java
+++ b/src/test/java/com/android/tools/r8/internal/R8GMSCoreLookupTest.java
@@ -4,7 +4,6 @@
 package com.android.tools.r8.internal;
 
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
 import com.android.tools.r8.StringResource;
@@ -68,12 +67,18 @@
     Set<DexEncodedMethod> targets = appInfo.lookupInterfaceTargets(method.method);
     if (appInfo.subtypes(method.method.holder).stream()
         .allMatch(t -> appInfo.definitionFor(t).isInterface())) {
-      assertTrue(targets.isEmpty());
+      assertEquals(
+          0,
+          targets.stream()
+              .filter(m -> m.accessFlags.isAbstract() || !m.accessFlags.isBridge())
+              .count());
     } else {
-      assertFalse(targets.isEmpty());
+      assertEquals(0, targets.stream().filter(m -> m.accessFlags.isAbstract()).count());
     }
   }
 
+
+
   private void testLookup(DexProgramClass clazz) {
     if (clazz.isInterface()) {
       for (DexEncodedMethod method : clazz.virtualMethods()) {
