diff --git a/ChangeLog b/ChangeLog
index 746b13b529b91ba4356ec0c1532db3660bfdf8ac..14892fdbb135c23dfc7af19c66edcde7eabdfd6e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2009-12-02 Chris Allegretta <chrisa@asty.org>
+	* text.c (add_undo, do_undo, do_redo) - Do not execute cases for SPLIT when DISABLE_WRAPPING
+	  is defined.  Fixes Savannah bug 28151 (anon).
+
 2009-12-02 Jordi Mallach <jordi@gnu.org>
 	* doc/man/nano.1: Fix escaping of hyphens for the -$ option.
 
diff --git a/src/text.c b/src/text.c
index 332abb1e13b189f3e608348c4f12d8496d1912ee..56541dd729c84860d50f3139b0163772a3c51122 100644
--- a/src/text.c
+++ b/src/text.c
@@ -481,6 +481,7 @@ void do_undo(void)
 	if (u->xflags == UNDO_DEL_BACKSPACE)
 	    openfile->current_x += strlen(u->strdata);
 	break;
+#ifndef DISABLE_WRAPPING
     case SPLIT:
 	undidmsg = _("line wrap");
 	f->data = (char *) nrealloc(f->data, strlen(f->data) + strlen(u->strdata) + 1);
@@ -494,6 +495,7 @@ void do_undo(void)
 	}
 	renumber(f);
 	break;
+#endif /* DISABLE_WRAPPING */
     case UNSPLIT:
 	undidmsg = _("line join");
 	t = make_new_node(f);
@@ -618,6 +620,7 @@ void do_redo(void)
 	do_gotolinecolumn(u->lineno, u->begin+1, FALSE, FALSE, FALSE, FALSE);
 	do_enter(TRUE);
 	break;
+#ifndef DISABLE_WRAPPING
     case SPLIT:
 	undidmsg = _("line wrap");
 	if (u->xflags & UNDO_SPLIT_MADENEW)
@@ -625,6 +628,7 @@ void do_redo(void)
         do_wrap(f, TRUE);
 	renumber(f);
 	break;
+#endif /* DISABLE_WRAPPING */
     case UNSPLIT:
 	undidmsg = _("line join");
 	len = strlen(f->data) + strlen(u->strdata + 1);
@@ -900,6 +904,7 @@ void add_undo(undo_type current_action)
 	    u->strdata = data;
 	}
 	break;
+#ifndef DISABLE_WRAPPING
     case SPLIT:
 	wrap_loc = break_line(openfile->current->data, fill
 #ifndef DISABLE_HELP
@@ -913,6 +918,7 @@ void add_undo(undo_type current_action)
 	    u->strdata2 = mallocstrcpy(NULL, fs->current->next->data);
 	u->begin = wrap_loc;
 	break;
+#endif /* DISABLE_WRAPPING */
     case INSERT:
     case REPLACE:
 	data = mallocstrcpy(NULL, fs->current->data);
@@ -1058,11 +1064,13 @@ void update_undo(undo_type action)
     case INSERT:
 	u->mark_begin_lineno = openfile->current->lineno;
 	break;
+#ifndef DISABLE_WRAPPING
     case SPLIT:
 	/* This will only be called if we made a completely new line,
 	   and as such we should note that so we can destroy it later */
 	u->xflags = UNDO_SPLIT_MADENEW;
 	break;
+#endif /* DISABLE_WRAPPING */
     case UNSPLIT:
 	/* These cases are handled by the earlier check for a new line and action */
     case ENTER: