diff --git a/src/nano.c b/src/nano.c
index 4fe35081a918fe3e480929b1c48bb999490f702b..7398b372395cbe72576e8243df00722b67248eae 100644
--- a/src/nano.c
+++ b/src/nano.c
@@ -1267,9 +1267,10 @@ RETSIGTYPE do_continue(int signal)
 #endif
 
 #ifndef NANO_TINY
-    /* Perhaps the user resized the window while we slept.  So act as if,
-     * and restore the terminal to its previous state in the process. */
-    regenerate_screen();
+    /* Perhaps the user resized the window while we slept.  So set that
+     * flag, and tickle the input routine so that it will see the flag. */
+    the_window_resized = TRUE;
+    ungetch(KEY_F0);
 #else
     /* Restore the state of the terminal and redraw the whole screen. */
     terminal_init();
diff --git a/src/winio.c b/src/winio.c
index 63b520fabf174f4626981235d59339883c37ecde..b27af3e311e0242cb0d689a7103c68c088b3d56a 100644
--- a/src/winio.c
+++ b/src/winio.c
@@ -701,8 +701,9 @@ int parse_kbinput(WINDOW *win)
 #ifdef KEY_RESIZE
 	/* Slang and SunOS 5.7-5.9 don't support KEY_RESIZE. */
 	case KEY_RESIZE:
-	    return ERR;
 #endif
+	case KEY_F0:
+	    return ERR;
     }
 
     return retval;