diff --git a/ChangeLog b/ChangeLog
index 7657cd057edf2cb12eaac5f838d3d974188c6f52..c0c49794f8ca4a624bc667bb2f589489fbb543af 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -328,11 +328,13 @@ CVS code -
 	  prompt, so that we don't end it in the middle of a multibyte
 	  character if it's more than (COLS - 1) bytes long. (DLR)
   total_redraw()
-	- Simplify to call clearok(TRUE) and wrefresh() on edit, which
-	  updates the entire screen in fewer function calls. (DLR)
+	- Simplify to call clearok(TRUE) and wrefresh() on curscr, which
+	  updates the entire screen in fewer function calls without
+	  moving the cursor from the window it's currently in. (DLR)
 	- When using slang, use SLsmg_touch_screen() and SLsmg_refresh()
-	  to update the screen, as the curses method will leave some
-	  windows cleared without properly updating them. (DLR)
+	  to update the screen, as slang doesn't define curscr, and even
+	  if it did, the curses method will leave some windows cleared
+	  without properly updating them. (DLR)
   do_replace_highlight()
 	- Use waddch() instead of waddstr() to display a space when we
 	  have a zero-length regex. (DLR)
diff --git a/src/winio.c b/src/winio.c
index 15041d91c8fe34b4be70cfce9e373829a37049ad..49236a34898b1641ea40c97d96a46d70bbff9b2b 100644
--- a/src/winio.c
+++ b/src/winio.c
@@ -3713,14 +3713,15 @@ int do_yesno(bool all, const char *msg)
 void total_redraw(void)
 {
 #ifdef USE_SLANG
-    /* Slang curses emulation brain damage, part 3: If we just do what
-     * curses does here, it'll leave some windows cleared without
-     * updating them properly. */
+    /* Slang curses emulation brain damage, part 3: Slang doesn't define
+     * curscr, and even if it did, if we just do what curses does here,
+     * it'll leave some windows cleared without updating them
+     * properly. */
     SLsmg_touch_screen();
     SLsmg_refresh();
 #else
-    clearok(edit, TRUE);
-    wrefresh(edit);
+    clearok(curscr, TRUE);
+    wrefresh(curscr);
 #endif
 }