diff --git a/src/text.c b/src/text.c
index a2d33df3fc98ca615ce77a4319104d19a8f2e3f5..bd5ca26a3b1ab7a534574557a982f600aaf7a8f9 100644
--- a/src/text.c
+++ b/src/text.c
@@ -286,10 +286,12 @@ void do_indent_marked(ssize_t cols)
 
 		/* Keep track of the change in the current line. */
 		if (f == openfile->mark_begin &&
+			openfile->mark_begin_x > indent_new &&
 			openfile->mark_begin_x >= indent_shift)
 		    openfile->mark_begin_x -= indent_shift;
 
-		if (f == openfile->current && openfile->current_x >=
+		if (f == openfile->current && openfile->current_x >
+			indent_new && openfile->current_x >=
 			indent_shift)
 		    openfile->current_x -= indent_shift;