diff --git a/src/text.c b/src/text.c
index 22064d381da0213b2be9e4166c56208eeaa2d3be..defbae0ce76d462a691153fddfff2e63f62995d3 100644
--- a/src/text.c
+++ b/src/text.c
@@ -384,23 +384,11 @@ void do_unindent(ssize_t cols)
 {
     bool indent_changed = FALSE;
 	/* Whether any indenting or unindenting was done. */
-    bool unindent = TRUE;
-	/* Whether we're unindenting text. */
-    char *line_indent = NULL;
-	/* The text added to each line in order to indent it. */
-    size_t line_indent_len = 0;
-	/* The length of the text added to each line in order to indent
-	 * it. */
     filestruct *top, *bot, *f;
     size_t top_x, bot_x;
 
     assert(openfile->current != NULL && openfile->current->data != NULL);
 
-    /* Otherwise, we're indenting, in which case the file will always be
-     * modified, so set indent_changed to TRUE. */
-    if (!unindent)
-	indent_changed = TRUE;
-
     /* If the mark is on, use all lines covered by the mark. */
     if (openfile->mark_set)
 	mark_order((const filestruct **)&top, &top_x,
@@ -411,58 +399,11 @@ void do_unindent(ssize_t cols)
 	bot = top;
     }
 
-    if (!unindent) {
-	/* Set up the text we'll be using as indentation. */
-	line_indent = charalloc(cols + 1);
-
-	if (ISSET(TABS_TO_SPACES)) {
-	    /* Set the indentation to cols spaces. */
-	    charset(line_indent, ' ', cols);
-	    line_indent_len = cols;
-	} else {
-	    /* Set the indentation to (cols / tabsize) tabs and (cols %
-	     * tabsize) spaces. */
-	    size_t num_tabs = cols / tabsize;
-	    size_t num_spaces = cols % tabsize;
-
-	    charset(line_indent, '\t', num_tabs);
-	    charset(line_indent + num_tabs, ' ', num_spaces);
-
-	    line_indent_len = num_tabs + num_spaces;
-	}
-
-	line_indent[line_indent_len] = '\0';
-    }
-
     /* Go through each line of the text. */
     for (f = top; f != bot->next; f = f->next) {
 	size_t line_len = strlen(f->data);
 	size_t indent_len = indent_length(f->data);
 
-	if (!unindent) {
-	    /* If we're indenting, add the characters in line_indent to
-	     * the beginning of the non-whitespace text of this line. */
-	    f->data = charealloc(f->data, line_len + line_indent_len + 1);
-	    charmove(&f->data[indent_len + line_indent_len],
-		&f->data[indent_len], line_len - indent_len + 1);
-	    strncpy(f->data + indent_len, line_indent, line_indent_len);
-	    openfile->totsize += line_indent_len;
-
-	    /* Keep track of the change in the current line. */
-	    if (openfile->mark_set && f == openfile->mark_begin &&
-			openfile->mark_begin_x >= indent_len)
-		openfile->mark_begin_x += line_indent_len;
-
-	    if (f == openfile->current && openfile->current_x >= indent_len) {
-		openfile->current_x += line_indent_len;
-		openfile->placewewant = xplustabs();
-	    }
-
-	    /* If the NO_NEWLINES flag isn't set, and this is the
-	     * magicline, add a new magicline. */
-	    if (!ISSET(NO_NEWLINES) && f == openfile->filebot)
-		new_magicline();
-	} else {
 	    size_t indent_col = strnlenpt(f->data, indent_len);
 		/* The length in columns of the indentation on this line. */
 
@@ -503,13 +444,8 @@ void do_unindent(ssize_t cols)
 		/* We've unindented, so the indentation changed. */
 		indent_changed = TRUE;
 	    }
-	}
     }
 
-    if (!unindent)
-	/* Clean up. */
-	free(line_indent);
-
     if (indent_changed) {
 	/* Throw away the undo stack, to prevent making mistakes when
 	 * the user tries to undo something in the reindented text. */