diff --git a/ChangeLog b/ChangeLog
index 5837472b483cda32e9b45a9c49efd9c7a0181abf..99fc60cedeb33f7cddc226e3f41355edb43c6c71 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -20,7 +20,8 @@ CVS Code -
 	- Fix nano crashing when searching/replacing an invalid
 	  regex (try "^*").  Changed regexp_init() to return 
 	  1 or 0 based on regcomp()'s return value and search_init 
-	  to exit with an error message (sorry Jordi!)
+	  to exit with an error message (sorry Jordi!).  Added 
+	  another check when using last_search instead of answer.
 	- Move regcomp into rcfile.c rather than each display refresh
 	  of winio.c.  New function rcfile.c:nregcomp().
 	  This fixes much of nano's resource hogging behavior
diff --git a/search.c b/search.c
index 5a625985c84589bb3b6e3be53c846387e4929a73..5af816562139ff127f2a4b627142f078975af8b8 100644
--- a/search.c
+++ b/search.c
@@ -102,6 +102,9 @@ int search_init(int replacing)
     int i = 0;
     char *buf;
     static char *backupstring = NULL;
+#ifdef HAVE_REGEX_H
+    const char *regex_error = _("Invalid regex \"%s\"");
+#endif /* HAVE_REGEX_H */
 
     search_init_globals();
 
@@ -164,14 +167,20 @@ int search_init(int replacing)
 #ifdef HAVE_REGEX_H
 	    if (ISSET(USE_REGEXP))
 		/* If answer is "", use last_search! */
-		regexp_init(last_search);
+		if (regexp_init(last_search) == 0) {
+		    statusbar(regex_error, last_search);
+		    reset_cursor();
+		    free(backupstring);
+		    backupstring = NULL;
+		    return -3;
+		}
 #endif
 	    break;
 	case 0:		/* They entered something new */
 #ifdef HAVE_REGEX_H
 	    if (ISSET(USE_REGEXP))
 		if (regexp_init(answer) == 0) {
-		    statusbar(_("Invalid regex!"));
+		    statusbar(regex_error, answer);
 		    reset_cursor();
 		    free(backupstring);
 		    backupstring = NULL;