diff --git a/ChangeLog b/ChangeLog
index 92b9092adbf6df92f9117cf886cf4a4c948f5cc5..7fae523443d835cfb6359e3346115077d16c92d5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2007-09-16  David Lawrence Ramsey  <pooka109@gmail.com>
+
+	* winio.c (edit_scroll): Fix problem where the screen wouldn't
+	be updated properly if you paged up with the first line of the
+	file onscreen and the mark on.
+
 2007-08-26  David Lawrence Ramsey  <pooka109@gmail.com>
 
 	* doc/faq.html: Update links to the Free Translation Project.
diff --git a/src/winio.c b/src/winio.c
index 814beb14d1b256df764a68b400ec1064d1533150..1c73a3b546e07a68d1d79189f44ac44425937806 100644
--- a/src/winio.c
+++ b/src/winio.c
@@ -2915,12 +2915,10 @@ void edit_scroll(scroll_dir direction, ssize_t nlines)
 
     /* Don't bother scrolling zero lines or more than the number of
      * lines in the edit window minus one; in both cases, get out, and
-     * in the latter case, call edit_refresh() beforehand. */
-    if (nlines == 0)
-	return;
-
-    if (nlines >= editwinrows) {
-	edit_refresh();
+     * call edit_refresh() beforehand if we need to. */
+    if (nlines == 0 || nlines >= editwinrows) {
+	if (do_redraw || nlines >= editwinrows)
+	    edit_refresh();
 	return;
     }