diff --git a/ChangeLog b/ChangeLog
index 92e42dee21e3149311e5168b101548bbf82aa16a..597aa5e126ce271fabbe09c4e742d8f8912e3821 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2009-09-12 Chris Allegretta <chrisa@asty.org>
+	* winio.c (edit_update) - properly update edittop when using soft wrapping.
+	  Fixes lack of centering for searching for off-screen answers, found by 
+	  Hannes <mr_creosote@mutantwatch.de>.
+
 2009-09-03 Chris Allegretta <chrisa@asty.org>
 	* global.c (shortcut_init): Fix up/down keys not responding in the file browser,
 	  discovered by Hannes <mr_creosote@mutantwatch.de>.
diff --git a/src/winio.c b/src/winio.c
index 8c60c06254c1688a6009d0f8227e0c339891d961..ed2990205987685760a682683d09df92a90882d8 100644
--- a/src/winio.c
+++ b/src/winio.c
@@ -3245,9 +3245,11 @@ void edit_update(update_type location)
 	    goal = editwinrows - 1;
     }
 
-    for (; goal > 0 && foo->prev != NULL; goal--)
+    for (; goal > 0 && foo->prev != NULL; goal--) {
+	if (ISSET(SOFTWRAP))
+	    goal -= strlenpt(foo->data) / (COLS - 1);
 	foo = foo->prev;
-
+    }
     openfile->edittop = foo;
 }