diff --git a/BUGS b/BUGS
index 7e88b9f2521480851e2d58e3257a6cac3d10c6d2..6da43fc34509f31c48b39bf23f2dda8ce60ff1e1 100644
--- a/BUGS
+++ b/BUGS
@@ -41,5 +41,5 @@
 - In search/replace code there is too much refreshing in bottomwin (26)
 - In replace, there is no way to accept the default replace string. (27)
 - In replace with completely adjacent strings, every other search string
-  will be missed (try replace ':' in a string like ':::::::::') (28)
+  will be missed (try replace ':' in a string like ':::::::::') (28) [FIXED]
 
diff --git a/ChangeLog b/ChangeLog
index 5a4a6992d158d60148f76048108902147c7090d2..2b630b85af8a5b91ab0afd77037c8717244d455c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -14,6 +14,7 @@ Current CVS:
   do_search(), do_replace():
 	- Removed call to search_abort()/replace_abort() before call to
 	  the opposite function.
+	- Fixed bug #28.
 - fr.po:
 	- French update by Clement Laforet <clem_laf@wanadoo.fr>.
 
diff --git a/po/nano.pot b/po/nano.pot
index 158e3a26c821ab7e5333b17efd0e716328d7bdeb..c6bdd5878a83d3e6418ef9d45845b21900c19d2d 100644
--- a/po/nano.pot
+++ b/po/nano.pot
@@ -6,7 +6,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2000-07-11 22:00-0400\n"
+"POT-Creation-Date: 2000-07-11 22:41-0400\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/search.c b/search.c
index 41dcfdb523dd26097823263e47938a5e6e6d6b10..53675c4bc3515d5b6f0200d3bf953272d057fd60 100644
--- a/search.c
+++ b/search.c
@@ -479,7 +479,7 @@ int do_replace(void)
 	    current->data = copy;
 
 	    /* Stop bug where we replace a substring of the replacement text */
-	    current_x += strlen(last_replace);
+	    current_x += strlen(last_replace) - 1;
 
 	    edit_refresh();
 	    set_modified();