diff --git a/ChangeLog b/ChangeLog
index 2d80dcde5d890d8eb4544d30802fef833da9849a..2ca6c9dac294b1511c392be70296424b3a679c5b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -44,6 +44,11 @@ CVS code -
 	- corrected the Mouse Toggle section, noticed by Daniel Bonniot.
 - rcfile.c:
 	- NUM_RCOPTS fix (DLR).
+- search.c:
+	- Changed search prompt to "Search" followed by a list of
+	  bracketed, free-standing modifiers that do not imply a grammar,
+	  and the (to replace) string separately.  Hopefully this resolves
+	  the i18n problems that this provoked.
 - winio.c:
 	- Add David Lawrence Ramsey to credits.
   bottombars()
diff --git a/search.c b/search.c
index 249f3e8694d29dd1bd2977d82ffb73271c464b98..6fab9312dd84960cfde474fed11c3c9b288bbb63 100644
--- a/search.c
+++ b/search.c
@@ -74,7 +74,6 @@ int search_init(int replacing)
 {
     int i = 0;
     char *buf;
-    char *prompt;
     static char *backupstring = NULL;
 #ifndef NANO_SMALL
     int j;
@@ -126,19 +125,24 @@ int search_init(int replacing)
     else
 	strcpy(buf, "");
 
-     /* Instead of having a million if statements here to determine
-	the prompt, we instead just have a hundred "? :" calls in
-	the statusq call.  I hope no one ever has to modify this :-) */
-    prompt = "%s%s%s%s%s%s";
-
     /* This is now one simple call.  It just does a lot */
     i = statusq(0, replacing ? replace_list : whereis_list,
 	replacing ? REPLACE_LIST_LEN : WHEREIS_LIST_LEN, backupstring,
-	prompt, 
-	ISSET(CASE_SENSITIVE) ? _("Case Sensitive ") : "",
-	ISSET(USE_REGEXP) ? _("Regexp ") : "",
+	"%s%s%s%s%s%s", 
 	_("Search"),
-	ISSET(REVERSE_SEARCH) ? _(" Backwards") : "",
+
+	/* This string is just a modifier for the search prompt,
+	   no grammar is implied */
+	ISSET(CASE_SENSITIVE) ? _(" [Case Sensitive]") : "",
+
+	/* This string is just a modifier for the search prompt,
+	   no grammar is implied */
+	ISSET(USE_REGEXP) ? _(" [Regexp]") : "",
+
+	/* This string is just a modifier for the search prompt,
+	   no grammar is implied */
+	ISSET(REVERSE_SEARCH) ? _(" [Backwards]") : "",
+
 	replacing ? _(" (to replace)") : "",
 	buf);