diff --git a/ChangeLog b/ChangeLog
index faf48906d0e3d8ed17fc8c5df23d1ee270ce21ee..3e4667dea0044925208c36b2f3c6663d51ac2786 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -151,6 +151,10 @@ CVS code -
 	  NANO_SMALL is defined and DISABLE_SPELLER isn't.  Also, turn
 	  the USE_REGEXP flag off during spell checking in order to
 	  avoid a potential segfault. (DLR)
+	- Fix a problem where if the cursor is in the middle of a file,
+	  the spell checker will sometimes only correct the misspelled
+	  word instances that appear before the cursor position and then
+	  stop. (Rocco)
   do_alt_speller()
 	- Call terminal_init() unconditionally after running the
 	  alternate spell checker, so that the terminal state is
diff --git a/src/nano.c b/src/nano.c
index 237faba928ad1be7d4fb118865e19aa9148f85ba..c38d59e44501186104e0533f64171c7bc48bf7f0 100644
--- a/src/nano.c
+++ b/src/nano.c
@@ -1487,7 +1487,7 @@ bool do_int_spell_fix(const char *word)
 
 	    if (accepted && strcmp(word, answer) != 0) {
 		current_x--;
-		do_replace_loop(word, current_save, &current_x_save, TRUE);
+		do_replace_loop(word, current, &current_x, TRUE);
 	    }
 
 	    break;