diff --git a/ChangeLog b/ChangeLog
index 49534676ff246ff79c8bff139a973b1125d4ecc4..fb0eab9f2203e2ea330533f445cccdd9c7539ee6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -346,9 +346,9 @@ CVS code -
   do_spell()
 	- Clarify the error message when creating a temporary file
 	  fails. (DLR)
-	- Call total_redraw() instead of total_refresh() after running
-	  the spell-checker, since the latter will display the wrong
-	  shortcut list. (DLR)
+	- Set currshortcut to main_list before calling total_refresh()
+	  near the end of the function, so that we don't display the
+	  wrong shortcut list. (DLR)
   do_verbatim_input()
 	- Add a translator comment explaining the "Verbatim Input"
 	  statusbar message. (Benno Schulenberg)
diff --git a/src/text.c b/src/text.c
index 7cdc8268d4364bfb22ce0fee4cd8287b922141b9..f1ccb397b0607ddeb3de6fcf7aa05caa94ded430 100644
--- a/src/text.c
+++ b/src/text.c
@@ -2334,9 +2334,11 @@ void do_spell(void)
     unlink(temp);
     free(temp);
 
+    currshortcut = main_list;
+
     /* If the spell-checker printed any error messages onscreen, make
      * sure that they're cleared off. */
-    total_redraw();
+    total_refresh();
 
     if (spell_msg != NULL) {
 	if (errno == 0)