diff --git a/src/main/java/com/android/tools/r8/Version.java b/src/main/java/com/android/tools/r8/Version.java
index ad2811c..e9ad7d9 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.6.50";
+  public static final String LABEL = "1.6.51";
 
   private Version() {
   }
diff --git a/src/main/java/com/android/tools/r8/dex/ClassesChecksum.java b/src/main/java/com/android/tools/r8/dex/ClassesChecksum.java
index ffdb9a4..3624975 100644
--- a/src/main/java/com/android/tools/r8/dex/ClassesChecksum.java
+++ b/src/main/java/com/android/tools/r8/dex/ClassesChecksum.java
@@ -83,13 +83,22 @@
       assert PREFIX.length() == 3;
       char[] prefix = new char[PREFIX.length()];
       int prefixLength = string.decodePrefix(prefix);
-      return prefixLength == 0
-          || (prefixLength == 1 && prefix[0] <= PREFIX_CHAR0)
-          || (prefixLength == 2 && prefix[0] == PREFIX_CHAR0 && prefix[1] <= PREFIX_CHAR1)
-          || (prefixLength == 3
-              && prefix[0] == PREFIX_CHAR0
-              && prefix[1] == PREFIX_CHAR1
-              && prefix[2] < PREFIX_CHAR2);
+      if (prefixLength == 0) {
+        return true;
+      }
+      if (prefix[0] != PREFIX_CHAR0) {
+        return prefix[0] < PREFIX_CHAR0;
+      }
+      if (prefixLength == 1) {
+        return true;
+      }
+      if (prefix[1] != PREFIX_CHAR1) {
+        return prefix[1] < PREFIX_CHAR1;
+      }
+      if (prefixLength == 2) {
+        return true;
+      }
+      return prefix[2] < PREFIX_CHAR2;
     } catch (UTFDataFormatException e) {
       throw new RuntimeException("Bad format", e);
     }
diff --git a/src/main/java/com/android/tools/r8/dex/DexParser.java b/src/main/java/com/android/tools/r8/dex/DexParser.java
index 34244b7..9085e5a 100644
--- a/src/main/java/com/android/tools/r8/dex/DexParser.java
+++ b/src/main/java/com/android/tools/r8/dex/DexParser.java
@@ -715,7 +715,7 @@
       AnnotationsDirectory annotationsDirectory = annotationsDirectoryAt(annotationsOffsets[i]);
 
       Long checksum = null;
-      if (checksums != null) {
+      if (checksums != null && !checksums.isEmpty()) {
         String desc = type.descriptor.toASCIIString();
         checksum = checksums.getOrDefault(desc, null);
         if (!options.dexClassChecksumFilter.test(desc, checksum)) {
diff --git a/src/test/java/com/android/tools/r8/dexfilemerger/DexMergeChecksumsHighSortingStrings.java b/src/test/java/com/android/tools/r8/dexfilemerger/DexMergeChecksumsHighSortingStrings.java
index c5ad260..24601c1 100644
--- a/src/test/java/com/android/tools/r8/dexfilemerger/DexMergeChecksumsHighSortingStrings.java
+++ b/src/test/java/com/android/tools/r8/dexfilemerger/DexMergeChecksumsHighSortingStrings.java
@@ -121,6 +121,14 @@
     assertTrue(ClassesChecksum.definitelyPrecedesChecksumMarker(factory.createString("~")));
     assertTrue(ClassesChecksum.definitelyPrecedesChecksumMarker(factory.createString("}")));
 
+    assertTrue(ClassesChecksum.definitelyPrecedesChecksumMarker(factory.createString("z")));
+    assertTrue(ClassesChecksum.definitelyPrecedesChecksumMarker(factory.createString("zz")));
+    assertTrue(ClassesChecksum.definitelyPrecedesChecksumMarker(factory.createString("zzz")));
+    assertTrue(ClassesChecksum.definitelyPrecedesChecksumMarker(factory.createString("zzzz")));
+
+    assertTrue(ClassesChecksum.definitelyPrecedesChecksumMarker(factory.createString("this")));
+    assertTrue(ClassesChecksum.definitelyPrecedesChecksumMarker(factory.createString("println")));
+
     // False negatives.
     assertFalse(ClassesChecksum.definitelyPrecedesChecksumMarker(factory.createString("~~~")));
     assertFalse(ClassesChecksum.definitelyPrecedesChecksumMarker(factory.createString("~~~z")));
