diff --git a/ChangeLog b/ChangeLog
index 36a10ec9d516e8826c1a08baa3e1d9dd33d953c3..7e8bea97e2d0d164d2200e53f95ff17da6b36b9b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -108,6 +108,10 @@ CVS code -
 	  no longer needed, and make the error message more similar to
 	  what the internal spell checker returns under the same
 	  circumstances. (DLR)
+  do_spell()
+	- When displaying an error message from do_(int|alt)_speller(),
+	  don't display the error message corresponding to errno if
+	  errno is zero. (David Benbennick)
   do_justify()
 	- If constant cursor position display is on, make sure the
 	  cursor position is displayed properly when we finish. (DLR)
diff --git a/src/nano.c b/src/nano.c
index d8022221716ba88557d8637f8bcfc9367a248193..da6175720201b20c37043563e9e6a4497e944c14 100644
--- a/src/nano.c
+++ b/src/nano.c
@@ -2562,10 +2562,14 @@ void do_spell(void)
      * sure that they're cleared off. */
     total_refresh();
 
-    if (spell_msg != NULL)
-	statusbar(_("Spell checking failed: %s: %s"), spell_msg,
+    if (spell_msg != NULL) {
+	if (errno == 0)
+	    /* Don't display an error message of "Success". */
+	    statusbar(_("Spell checking failed: %s"), spell_msg);
+	else
+	    statusbar(_("Spell checking failed: %s: %s"), spell_msg,
 		strerror(errno));
-    else
+    } else
 	statusbar(_("Finished checking spelling"));
 }
 #endif /* !DISABLE_SPELLER */