diff --git a/ChangeLog b/ChangeLog
index 822441b..0d067b3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -229,8 +229,8 @@
 	  Also fix minor problem with search history where the current
 	  search item could be at the bottom of the history twice in a
 	  row under certain conditions. (DLR)
-	- Move down NANO_SMALL in tab check so nano won't complain if
-	  just NANO_SMALL is defined (David Benbennick, presumed fix).
+	- Remove parens in NANO_CONTROL_I check so nano won't complain if
+	  just NANO_SMALL is defined (David Benbennick).
   edit_refresh()
 	- Miscellaneous cleanups that fix a bug where the screen
 	  isn't updated after uncutting chunks of upwardly marked cut
diff --git a/proto.h b/proto.h
index 05043a1..f981d98 100644
--- a/proto.h
+++ b/proto.h
@@ -250,6 +250,7 @@
 #if defined(DISABLE_JUSTIFY) || defined(DISABLE_SPELLER) || defined(DISABLE_HELP) || defined(NANO_SMALL)
 void nano_disabled_msg(void);
 #endif
+void do_preserve_msg(void);
 #ifndef NANO_SMALL
 RETSIGTYPE cancel_fork(int signal);
 int open_pipe(const char *command);
diff --git a/winio.c b/winio.c
index 6aa687b..2dfb994 100644
--- a/winio.c
+++ b/winio.c
@@ -334,21 +334,20 @@
 		}
 	    }
 #ifndef DISABLE_TABCOMP
-	    else {
+	    else
+#endif
 #endif
 #ifndef DISABLE_TABCOMP
-		if (allowtabs) {
-		    int shift = 0;
+	    if (allowtabs) {
+		int shift = 0;
 
-		    answer = input_tab(answer, x, &tabbed, &shift, list);
-		    xend = strlen(answer);
-		    x += shift;
-		    if (x > xend)
-			x = xend;
-		}
+		answer = input_tab(answer, x, &tabbed, &shift, list);
+		xend = strlen(answer);
+		x += shift;
+		if (x > xend)
+		    x = xend;
 	    }
 #endif
-#endif /* NANO_SMALL */
 	    break;
 	case KEY_LEFT:
 	case NANO_BACK_KEY:
