diff --git a/ChangeLog b/ChangeLog
index 84b8295affb694aa55fe6e80e98bdbd5a77b1ad1..c073dffcf50011750a411e72a1f541ad00badc28 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2014-01-24 Benno Schulenberg <bens>
+	* src/nano.c (copy_from_filestruct) - Check explicitly for mark being set when
+	  trying to partition, as we shouldn't be messing with the x address, etc.
+
 2014-01-25 Chris Allegretta <chrisa@asty.org>
 	* src/winio.c (set_modified) - Check for a filename before we bother trying to lock
 
diff --git a/src/nano.c b/src/nano.c
index ccd6278652b4bf7bcd1cf56ddb1c86cfec104a3e..08c8441f8026bdee04c12abecd1106613b7bf7f7 100644
--- a/src/nano.c
+++ b/src/nano.c
@@ -465,7 +465,12 @@ void copy_from_filestruct(filestruct *file_top, filestruct *file_bot)
     }
 #ifndef NANO_TINY
     else if (openfile->mark_set) {
-	if (!right_side_up) {
+	if (right_side_up) {
+	    if (single_line)
+		/* get the new data, stuff was inserted on mark line */
+		openfile->mark_begin = openfile->fileage;
+		/* the x is okay, it did not move */
+	} else {
 	    if (single_line) {
 		openfile->mark_begin = openfile->current;
 		openfile->mark_begin_x -= current_x_save;