diff --git a/ChangeLog b/ChangeLog
index 98192dcb74ff3e7057502da1fe54ac41c3878c80..9368f08db3e5b00001f91440d0521f1589675dcd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -119,6 +119,10 @@ CVS code -
 	- Add a few efficiency/extensibility tweaks. (David Benbennick)
 	- Convert to use the new low-level input functions, and remove
 	  two last hardcoded widths left after the above tweaks. (DLR)
+  do_replace_highlight()
+	- Display a highlighted space if the word length is zero, so
+	  that we can see zero-length regexes we're replacing. (DLR;
+	  suggested by Mike Frysinger)
 - configure.ac:
 	- Check for glib 2.x and then 1.2.x if we need glib. (DLR)
 - nano.spec.in:
diff --git a/src/winio.c b/src/winio.c
index ec60a2fa7f51d8524fe65f275b097fbb56e8521c..a1a933e3ac46c009b30387dbd44203be393e04e5 100644
--- a/src/winio.c
+++ b/src/winio.c
@@ -2236,7 +2236,11 @@ void do_replace_highlight(int highlight_flag, const char *word)
     if (highlight_flag)
 	wattron(edit, A_REVERSE);
 
-    waddnstr(edit, word, y - 1);
+    /* This is so we can show zero-length regexes. */
+    if (word_len == 0)
+	waddstr(edit, " ");
+    else
+	waddnstr(edit, word, y - 1);
 
     if (word_len > y)
 	waddch(edit, '$');