diff --git a/gtk2_ardour/midi_region_view.cc b/gtk2_ardour/midi_region_view.cc index 3edd527ad0..410d6a565e 100644 --- a/gtk2_ardour/midi_region_view.cc +++ b/gtk2_ardour/midi_region_view.cc @@ -820,7 +820,10 @@ MidiRegionView::note_dropped(CanvasMidiEvent* ev, double dt, uint8_t dnote) if (_selection.find(ev) != _selection.end()) { start_delta_command(); - for (Selection::iterator i = _selection.begin(); i != _selection.end(); ++i) { + for (Selection::iterator i = _selection.begin(); i != _selection.end() ; ) { + Selection::iterator next = i; + ++next; + command_remove_note(*i); const boost::shared_ptr copy(new Note(*(*i)->note().get())); @@ -828,6 +831,9 @@ MidiRegionView::note_dropped(CanvasMidiEvent* ev, double dt, uint8_t dnote) copy->set_note((*i)->note()->note() + dnote); command_add_note(copy); + + _selection.erase(i); + i = next; } apply_command(); }