diff --git a/ChangeLog b/ChangeLog
index 04e8ce78b71ad2751bade672477d57b662912be1..e532f29d1c09eb91a0095e50572f7cc28e691144 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2016-02-14  Benno Schulenberg  <bensberg@justemail.net>
+	* src/search.c (do_replace_loop): Make iterating through replacement
+	matches behave again like iterating through search matches: showing
+	them centered when found offscreen.  This fixes Savannah bug #47127.
+
 2016-02-13  Benno Schulenberg  <bensberg@justemail.net>
 	* src/browser.c (do_browser, browser_refresh): Rebuild the file list
 	only when necessary, not for each and every cursor movement.  This
diff --git a/src/search.c b/src/search.c
index 9d63f7b481ec921d461af376cd6efe7b51d8115c..010540332ff91425534ec48e6d8c4378154832ee 100644
--- a/src/search.c
+++ b/src/search.c
@@ -708,6 +708,10 @@ ssize_t do_replace_loop(
 		xpt, strnlenpt(openfile->current->data,
 		openfile->current_x + match_len) - xpt, FALSE);
 
+	    /* If the match is offscreen, center it; otherwise, let it be. */
+	    edit_redraw(openfile->current, openfile->placewewant);
+
+	    /* Now refresh the entire edit window, in case it scrolled. */
 	    edit_refresh();
 
 	    /* Don't show cursor, to not distract from highlighted match. */