diff --git a/ChangeLog b/ChangeLog
index 58910674ebe4cf501b0827b189070615c647ce07..6ec79fbb56fa91b3d8df3c9d293e084f7219a25a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -191,8 +191,6 @@ CVS code -
 	  work properly when we've replaced one or more instances of a
 	  string in copy and haven't yet updated current->data to match
 	  copy. (DLR)
-	- Simplify the display_string() call that we use to get the word
-	  that we're going to highlight. (DLR)
 - utils.c:
   num_of_digits()
 	- Use a size_t instead of an int, and rename to digits(). (DLR)
diff --git a/src/search.c b/src/search.c
index f312365aa75318f59dc963beb2c7843f3d8b3d01..c6dd0929c49edbb279be21dc9bda902f2de2dc7a 100644
--- a/src/search.c
+++ b/src/search.c
@@ -751,10 +751,9 @@ ssize_t do_replace_loop(const char *needle, const filestruct
 	    numreplaced = 0;
 
 	if (!replaceall) {
-	    char *exp_word;
 	    size_t xpt = xplustabs();
-
-	    exp_word = display_string(current->data, xpt, match_len,
+	    char *exp_word = display_string(current->data, xpt,
+		strnlenpt(current->data, current_x + match_len) - xpt,
 		FALSE);
 
 	    curs_set(0);