@@ -671,11 +671,18 @@ impl Editor {
671671 .any(|(_, v)| v.doc == doc.id && v.id != view.id);
672672
673673 let (view, doc) = current!(self);
674+ let view_id = view.id;
675+
674676 if remove_empty_scratch {
675677 // Copy `doc.id` into a variable before calling `self.documents.remove`, which requires a mutable
676678 // borrow, invalidating direct access to `doc.id`.
677679 let id = doc.id;
678680 self.documents.remove(&id);
681+
682+ // Remove the scratch buffer from any jumplists
683+ for (view, _) in self.tree.views_mut() {
684+ view.jumps.remove(&id)
685+ }
679686 } else {
680687 let jump = (view.doc, doc.selection(view.id).clone());
681688 view.jumps.push(jump);
@@ -691,7 +698,6 @@ impl Editor {
691698 }
692699 }
693700
694− let view_id = view.id;
695701 self.replace_document_in_view(view_id, id);
696702
697703 return;