Index: src/text.c =================================================================== --- src/text.c (revision 5008) +++ src/text.c (working copy) @@ -843,9 +843,9 @@ /* Ugh, if we were called while cutting not-to-end, non-marked, and * on the same lineno, we need to abort here. */ u = fs->current_undo; - if (u && u->mark_begin_lineno == fs->current->lineno && + if (u && u->mark_begin_lineno == fs->current->lineno && u->mark_begin_x == fs->current_x && ((current_action == CUT && u->type == CUT && !u->mark_set && keeping_cutbuffer()) || - (current_action == ADD && u->type == ADD && u->mark_begin_x == fs->current_x))) + (current_action == ADD && u->type == ADD))) return; /* Blow away the old undo stack if we are starting from the middle. */