Index: src/text.c =================================================================== --- src/text.c (revision 5138) +++ src/text.c (working copy) @@ -2661,7 +2661,6 @@ { int alt_spell_status; size_t current_x_save = openfile->current_x; - size_t pww_save = openfile->placewewant; ssize_t current_y_save = openfile->current_y; ssize_t lineno_save = openfile->current->lineno; pid_t pid_spell; @@ -2804,13 +2803,6 @@ * and the end of the spell-checked text. */ if (openfile->fileage == openfile->filebot) bot_x += top_x; - if (right_side_up) { - openfile->mark_begin_x = top_x; - current_x_save = bot_x; - } else { - current_x_save = top_x; - openfile->mark_begin_x = bot_x; - } /* Unpartition the filestruct so that it contains all the text * again. Note that we've replaced the marked text originally @@ -2827,8 +2819,9 @@ openfile->totsize = totsize_save; /* Assign mark_begin to the line where the mark began before. */ - do_gotopos(mb_lineno_save, openfile->mark_begin_x, - current_y_save, 0); + openfile->current_y = current_y_save; + goto_line_posx(mb_lineno_save, openfile->mark_begin_x); + openfile->mark_begin = openfile->current; /* Assign mark_begin_x to the location in mark_begin where the @@ -2842,7 +2835,9 @@ #endif /* Go back to the old position, and mark the file as modified. */ - do_gotopos(lineno_save, current_x_save, current_y_save, pww_save); + openfile->current_y = current_y_save; + goto_line_posx(lineno_save, current_x_save); + edit_update(NONE); set_modified(); #ifndef NANO_TINY