diff --git a/helix-core/src/transaction.rs b/helix-core/src/transaction.rs
index aaf912dd..7da5b7dd 100644
--- a/helix-core/src/transaction.rs
+++ b/helix-core/src/transaction.rs
@@ -350,6 +350,8 @@ impl ChangeSet {
 
                     // a subsequent delete means a replace, consume it
                     if let Some(Delete(len)) = iter.peek() {
+                        iter.next();
+
                         old_end = old_pos + len;
                         // in range of replaced text
                         if old_end > pos {