diff --git a/src/text.c b/src/text.c
index 495e985f467f94d909044cb62b1ee92e5b7eefeb..1e074ce5036b942a13f4cf81aecefcfb538281f7 100644
--- a/src/text.c
+++ b/src/text.c
@@ -278,10 +278,12 @@ void do_indent_marked(ssize_t len)
 		null_at(&f->data, line_len - indent_len + 1);
 		openfile->totsize -= indent_len;
 
-		/* If this is the current line, adjust the x-coordinate
-		 * to compensate for the change in it. */
-		if (f == openfile->current)
+		/* If this is the current line, keep track of the change
+		 * in it. */
+		if (f == openfile->current) {
 		    openfile->current_x -= indent_len;
+		    openfile->mark_begin_x -= indent_len;
+		}
 
 		/* We've unindented, so set indent_changed to TRUE. */
 		if (!indent_changed)
@@ -296,10 +298,12 @@ void do_indent_marked(ssize_t len)
 	    strncpy(f->data, line_indent, line_indent_len);
 	    openfile->totsize += line_indent_len;
 
-	    /* If this is the current line, adjust the x-coordinate to
-	     * compensate for the change in it. */
-	    if (f == openfile->current)
+	    /* If this is the current line, keep track of the change in
+	     * it. */
+	    if (f == openfile->current) {
 		openfile->current_x += line_indent_len;
+		openfile->mark_begin_x += line_indent_len;
+	    }
 
 	    /* If the NO_NEWLINES flag isn't set, and this is the
 	     * magicline, add a new magicline. */