diff --git a/ChangeLog b/ChangeLog
index ef768949b5167f416303eca12272c139d7b0b17e..ac7c55cff6c45b5f41bd928ea5dc667ffbfbefff 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -229,6 +229,8 @@ CVS code -
 	  is running, so that it can handle them, and unblock them once
 	  it's finished and we've loaded the spell-checked file back in.
 	  (DLR)
+	- Use doupdate() to reenter curses mode instead of refresh().
+	  (DLR)
   do_spell()
 	- When displaying an error message from do_(int|alt)_speller(),
 	  don't display the error message corresponding to errno if
@@ -236,6 +238,9 @@ CVS code -
   do_justify()
 	- If constant cursor position display is on, make sure the
 	  cursor position is displayed properly when we finish. (DLR)
+  handle_sigwinch()
+	- Use doupdate() to reenter curses mode instead of refresh().
+	  (DLR)
   allow_pending_sigwinch()
 	- Simplify by using the "?" operator instead of an if clause.
 	  (DLR)
diff --git a/src/nano.c b/src/nano.c
index 005899d1af521bc84aff14daaaab06d7c75eb371..4cbe965c7019dbb618f06bc040f6d651f66a8571 100644
--- a/src/nano.c
+++ b/src/nano.c
@@ -1333,11 +1333,11 @@ void do_suspend(int signal)
 void do_cont(int signal)
 {
 #ifndef NANO_SMALL
-    /* Perhaps the user resized the window while we slept.  Handle it
+    /* Perhaps the user resized the window while we slept.  Handle it,
      * and update the screen in the process. */
     handle_sigwinch(0);
 #else
-    /* Just update the screen. */
+    /* Reenter curses mode, and update the screen in the process. */
     doupdate();
 #endif
 }
@@ -1391,7 +1391,7 @@ void handle_sigwinch(int s)
     /* Do the equivalent of what Minimum Profit does: Leave and
      * immediately reenter curses mode. */
     endwin();
-    refresh();
+    doupdate();
 #endif
 
     /* Restore the terminal to its previous state. */
diff --git a/src/text.c b/src/text.c
index 2b12199597574b619c6b28cc3f81be4186014a38..e3ee1079f9416f21d211f8bbbd8ad2d2ebc88e8c 100644
--- a/src/text.c
+++ b/src/text.c
@@ -1894,7 +1894,8 @@ const char *do_alt_speller(char *tempfile_name)
     /* Wait for the alternate spell checker to finish. */
     wait(&alt_spell_status);
 
-    refresh();
+    /* Reenter curses mode. */
+    doupdate();
 
     /* Restore the terminal to its previous state. */
     terminal_init();