diff --git a/ChangeLog b/ChangeLog
index d886a7e9efc12003efde0010882de942123ea858..de0899275df0bf1e93a984c363f4af5dde84895c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,8 @@
 2016-03-19  Benno Schulenberg  <bensberg@justemail.net>
 	* src/search.c (search_init): Always remember the last typed string,
 	also when it's an invalid regex.  This fixes Savannah bug #47440.
+	* src/search.c (search_init, do_replace): Don't bother setting the
+	current answer to the empty string, as do_prompt() can handle a NULL.
 
 2016-03-17  Benno Schulenberg  <bensberg@justemail.net>
 	* src/search.c (do_research): Use the Search key bindings also during
diff --git a/src/search.c b/src/search.c
index 6ceb9af0e0e58f099b78f4099f020f55c3d8bb24..33faf9e0adad3c0dc96dfdeccb1bbc3de249e5f6 100644
--- a/src/search.c
+++ b/src/search.c
@@ -132,10 +132,6 @@ int search_init(bool replacing, bool use_answer)
     static char *backupstring = NULL;
 	/* The search string we'll be using. */
 
-    /* If backupstring doesn't exist, initialize it to "". */
-    if (backupstring == NULL)
-	backupstring = mallocstrcpy(NULL, "");
-
     /* If use_answer is TRUE, set backupstring to answer and get out. */
     if (use_answer) {
 	backupstring = mallocstrcpy(backupstring, answer);
@@ -845,13 +841,11 @@ void do_replace(void)
     if (i != 0)
 	return;
 
-    last_replace = mallocstrcpy(last_replace, "");
-
     i = do_prompt(FALSE,
 #ifndef DISABLE_TABCOMP
 	TRUE,
 #endif
-	MREPLACEWITH, last_replace,
+	MREPLACEWITH, NULL,
 #ifndef DISABLE_HISTORIES
 	&replace_history,
 #endif