diff --git a/nano.c b/nano.c
index 209be040d3b74f57a13eb3e55d544006c8294401..b50fb57bfcc4034929af7c97ec766feaa89684c8 100644
--- a/nano.c
+++ b/nano.c
@@ -1859,14 +1859,14 @@ int do_int_speller(char *tempfile_name)
 
     /* Process end of spell process */
 
-    wait(&spell_status);
-    wait(&sort_status);
-    wait(&uniq_status);
+    waitpid(pid_spell, &spell_status, WNOHANG);
+    waitpid(pid_sort, &sort_status, WNOHANG);
+    waitpid(pid_uniq, &uniq_status, WNOHANG);
 
     if (WIFEXITED(spell_status) && WIFEXITED(sort_status) 
 	    && WIFEXITED(uniq_status)) {
-	if (WEXITSTATUS(spell_status) != 0 || WEXITSTATUS(sort_status) 
-		|| WEXITSTATUS(uniq_status))
+	if (WEXITSTATUS(spell_status) != 0 || WEXITSTATUS(sort_status) != 0 
+		|| WEXITSTATUS(uniq_status) != 0)
 	    return FALSE;
     } else
 	 return FALSE;