diff --git a/src/main/java/com/android/tools/r8/graph/DexDebugEventBuilder.java b/src/main/java/com/android/tools/r8/graph/DexDebugEventBuilder.java
index 7020f4b..c1dad50 100644
--- a/src/main/java/com/android/tools/r8/graph/DexDebugEventBuilder.java
+++ b/src/main/java/com/android/tools/r8/graph/DexDebugEventBuilder.java
@@ -184,9 +184,17 @@
   }
 
   private void emitDebugPosition(int pc, int line, DexString file) {
-    // The position requires a pc change event and possible events for line, file and local changes.
-    // Verify that we do not ever produce two subsequent positions at the same pc.
-    assert emittedPc != pc;
+    if (emittedPc == pc) {
+      // The pc is unchanged then this must be the same position as the previous and we do nothing.
+      // If this assert fails, we have likely forgotten to insert a "nop" instruction between two
+      // successive yet distinct debug positions.
+      assert emittedLine == line && emittedFile == file;
+      return;
+    }
+    boolean changedLocals = localsChanged();
+    if (!changedLocals && emittedLine == line && emittedFile == file) {
+      return;
+    }
     if (startLine == NO_LINE_INFO) {
       assert emittedLine == NO_LINE_INFO;
       startLine = line;
@@ -196,7 +204,7 @@
     emittedPc = pc;
     emittedLine = line;
     emittedFile = file;
-    if (localsChanged()) {
+    if (changedLocals) {
       emitLocalChangeEvents(emittedLocals, pendingLocals, lastKnownLocals, events, factory);
       assert localsEqual(emittedLocals, pendingLocals);
     }
diff --git a/src/main/java/com/android/tools/r8/ir/conversion/DexBuilder.java b/src/main/java/com/android/tools/r8/ir/conversion/DexBuilder.java
index 92f768e..923dbf1 100644
--- a/src/main/java/com/android/tools/r8/ir/conversion/DexBuilder.java
+++ b/src/main/java/com/android/tools/r8/ir/conversion/DexBuilder.java
@@ -369,7 +369,7 @@
         }
       }
     }
-    if (next.isDebugPosition()) {
+    if (next.isDebugPosition() && !position.equals(next.asDebugPosition())) {
       add(position, new FixedSizeInfo(position, new Nop()));
     } else {
       addNop(position);
