diff --git a/ChangeLog b/ChangeLog
index 0b970ff300dce3772e8aaf12ad5ce44e18d7556a..165b1bac7a553cad4d87ef16a356bdef6c090a18 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -6,12 +6,11 @@ CVS code -
 	- If constant cursor position display is on when we finish, make
 	  sure the cursor position is displayed properly. (DLR)
   do_alt_speller()
-	- Rename variable msglen to msg_len, for consistency, and make
-	  it a size_t instead of an int.  Also remove unnecessary
-	  initialization of altspell_error. (DLR)
 	- If we can't invoke the spell checker, use sprintf() instead of
 	  snprintf() to write the error string we return, as
-	  altspell_error will always be long enough to hold it. (DLR)
+	  altspell_error will always be long enough to hold it.  Also
+	  remove unnecessary initialization of altspell_error, and
+	  refactor so that msglen is no longer needed. (DLR)
   allow_pending_sigwinch()
 	- Simplify by using the "?" operator instead of an if clause.
 	  (DLR)
diff --git a/src/nano.c b/src/nano.c
index d068852af330c7b0a5b065164d34768459bc1862..ecc53e81f6fe5ced8b47fc7021003601d502472f 100644
--- a/src/nano.c
+++ b/src/nano.c
@@ -2400,7 +2400,6 @@ const char *do_alt_speller(char *tempfile_name)
 		WEXITSTATUS(alt_spell_status) != 0) {
 	char *altspell_error;
 	char *invoke_error = _("Could not invoke \"%s\"");
-	size_t msg_len = strlen(invoke_error) + strlen(alt_speller) + 2;
 
 #ifndef NANO_SMALL
 	/* Turn the mark back on if it was on before. */
@@ -2408,7 +2407,9 @@ const char *do_alt_speller(char *tempfile_name)
 	    SET(MARK_ISSET);
 #endif
 
-	altspell_error = charalloc(msg_len);
+	altspell_error =
+		charalloc(strlen(invoke_error) +
+		strlen(alt_speller) + 2);
 	sprintf(altspell_error, invoke_error, alt_speller);
 	return altspell_error;
     }