diff --git a/src/files.c b/src/files.c
index 87ee50cb30028d47c1d06f8bebe76f0c56f2bbe6..766168df2f9d9a8155f5f481678491cfe3b64237 100644
--- a/src/files.c
+++ b/src/files.c
@@ -897,7 +897,7 @@ void do_insertfile(
 		}
 #ifndef NANO_TINY
 		else if (openfile->mark_set && do_mark_shift)
-		    openfile->mark_begin_x -= current_x_save;
+		    openfile->mark_begin_x -= openfile->current_x;
 #endif
 
 		/* Update the current y-coordinate to account for the
diff --git a/src/nano.c b/src/nano.c
index bb9047db0825a004d5c5ec64df66d4bf056cc620..04d8c062f0c5d1138fe6ae43809fadc98e5ae49d 100644
--- a/src/nano.c
+++ b/src/nano.c
@@ -439,7 +439,7 @@ void copy_from_filestruct(filestruct *file_top, filestruct *file_bot)
     }
 #ifndef NANO_TINY
     else if (openfile->mark_set && do_mark_shift)
-	openfile->mark_begin_x -= current_x_save;
+	openfile->mark_begin_x -= openfile->current_x;
 #endif
 
     /* Get the number of characters in the copied text, and add it to