diff --git a/src/text.c b/src/text.c
index 61e84e935e1d7ecaa34244aa54066df8aa6f59e6..b302163cab36ed7470592f7d5a8225b27785f13a 100644
--- a/src/text.c
+++ b/src/text.c
@@ -461,18 +461,16 @@ void handle_indent_action(undo *u, bool undoing, bool add_indent)
 
 	/* For each line in the group, add or remove the individual indent. */
 	while (line && line->lineno <= group->bottom_line) {
-	    char *indentation = mallocstrcpy(NULL,
-			group->indentations[line->lineno - group->top_line]);
+	    char *blanks = group->indentations[line->lineno - group->top_line];
 
 	    if (undoing ^ add_indent)
-		indent_a_line(line, indentation);
+		indent_a_line(line, blanks);
 	    else
-		unindent_a_line(line, strlen(indentation));
-
-	    free(indentation);
+		unindent_a_line(line, strlen(blanks));
 
 	    line = line->next;
 	}
+
 	group = group->next;
     }
 
@@ -652,6 +650,7 @@ void handle_comment_action(undo *u, bool undoing, bool add_comment)
 				COMMENT : UNCOMMENT, f, u->strdata);
 	    f = f->next;
 	}
+
 	group = group->next;
     }