diff --git a/ChangeLog b/ChangeLog
index c4412bc10cdbd3b6fd7df35c4f2358c5dc768399..9dcf7706319aed77401a16c270fb482e8679b2fc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -178,6 +178,9 @@ CVS code -
 	- Replace a set_modified() with SET(MODIFIED) to avoid an
 	  unnecessary update, and remove an unneeded clearok(FALSE).
 	  (DLR)
+  do_spell()
+	- If the spell-checker printed any error messages onscreen, make
+	  sure they're cleared off. (DLR, found by CHAO Wei-Lun)
   do_output()
 	- Properly allow wrapping when we insert a tab, for consistency.
 	  (DLR)
diff --git a/src/nano.c b/src/nano.c
index d9bd8e2b552fc6a2e93be43b91049e1758775c6a..52a2390797efadf0e1f1282b2ed2b62d72e7f780 100644
--- a/src/nano.c
+++ b/src/nano.c
@@ -2476,6 +2476,10 @@ void do_spell(void)
     unlink(temp);
     free(temp);
 
+    /* If the spell-checker printed any error messages onscreen, make
+     * sure they're cleared off. */
+    total_update();
+
     if (spell_msg != NULL)
 	statusbar(_("Spell checking failed: %s: %s"), spell_msg,
 		strerror(errno));