diff --git a/src/text.c b/src/text.c
index 04b29a82b669e21cd5836a69a35a6878b144b3ac..558cda7dfbafb163e112e7a8e9f54275072daa77 100644
--- a/src/text.c
+++ b/src/text.c
@@ -339,27 +339,22 @@ void do_indent(void)
 
 	openfile->totsize += line_indent_len;
 
-	/* Keep track of the change in the current line. */
+	/* Compensate for the change in the current line. */
 	if (openfile->mark_set && f == openfile->mark_begin)
 	    openfile->mark_begin_x += line_indent_len;
-
 	if (f == openfile->current) {
 	    openfile->current_x += line_indent_len;
 	    openfile->placewewant = xplustabs();
 	}
     }
 
-    /* Clean up. */
     free(line_indent);
 
     /* Throw away the undo stack, to prevent making mistakes when
      * the user tries to undo something in the indented text. */
     discard_until(NULL, openfile);
 
-    /* Mark the file as modified. */
     set_modified();
-
-    /* Update the screen. */
     refresh_needed = TRUE;
 }
 
@@ -421,39 +416,33 @@ void do_unindent(void)
 	if (white_string(f->data) && indent_len < tabsize)
 	    continue;
 
-	    /* If there's at least tabsize
-	     * columns' worth of indentation at the beginning of the
-	     * non-whitespace text of this line, remove it. */
-	    charmove(f->data, &f->data[indent_len], line_len - indent_len + 1);
-	    null_at(&f->data, line_len - indent_len + 1);
-	    openfile->totsize -= indent_len;
-
-	    /* Keep track of the change in the current line. */
-	    if (openfile->mark_set && f == openfile->mark_begin) {
-		if (openfile->mark_begin_x <= indent_len)
-		    openfile->mark_begin_x = 0;
-		else
-		    openfile->mark_begin_x -= indent_len;
-	    }
+	/* Remove the first tab's worth of whitespace from this line. */
+	charmove(f->data, &f->data[indent_len], line_len - indent_len + 1);
+	null_at(&f->data, line_len - indent_len + 1);
+	openfile->totsize -= indent_len;
 
-	    if (f == openfile->current) {
-		if (openfile->current_x <= indent_len)
-		    openfile->current_x = 0;
-		else
-		    openfile->current_x -= indent_len;
-		openfile->placewewant = xplustabs();
-	    }
+	/* Compensate for the change in the current line. */
+	if (openfile->mark_set && f == openfile->mark_begin) {
+	    if (openfile->mark_begin_x <= indent_len)
+		openfile->mark_begin_x = 0;
+	    else
+		openfile->mark_begin_x -= indent_len;
+	}
+	if (f == openfile->current) {
+	    if (openfile->current_x <= indent_len)
+		openfile->current_x = 0;
+	    else
+		openfile->current_x -= indent_len;
+	    openfile->placewewant = xplustabs();
+	}
     }
 
-	/* Throw away the undo stack, to prevent making mistakes when
-	 * the user tries to undo something in the unindented text. */
-	discard_until(NULL, openfile);
-
-	/* Mark the file as modified. */
-	set_modified();
+    /* Throw away the undo stack, to prevent making mistakes when
+     * the user tries to undo something in the unindented text. */
+    discard_until(NULL, openfile);
 
-	/* Update the screen. */
-	refresh_needed = TRUE;
+    set_modified();
+    refresh_needed = TRUE;
 }
 #endif /* !NANO_TINY */