diff --git a/ChangeLog b/ChangeLog
index 78e1b048dd678f294af5cf1272c022ecce3e3d7a..e18a6370bb3418eeb30e2ab8483498c5cb99fe73 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -17,6 +17,12 @@ CVS code -
 - winio.c:
   get_accepted_kbinput()
 	- Don't use "kbinput = wgetch(win)" as a switch value. (DLR)
+  get_page_start()
+	- For consistency, tweak so that scrolling always occurs when we
+	  try to move onto the "$" at the end of the line, as opposed to
+	  (a) when we move onto the "$" at the end of the line on the
+	  first page and (b) when we move onto the character just before
+	  the "$" on subsequent pages. (DLR)
   do_credits()
 	- Use nanosleep() instead of usleep().  The latter is only
 	  standard under BSD, whereas the former is POSIX compliant.
diff --git a/src/winio.c b/src/winio.c
index 07940585fccff76c0b997a31cc9ed9739f67c3f9..bf39103a019e8d077a4b5824e03c6bbfe0b6fdad 100644
--- a/src/winio.c
+++ b/src/winio.c
@@ -1283,7 +1283,7 @@ size_t get_page_start(size_t column)
     if (column == 0 || column < COLS - 1)
 	return 0;
     else if (COLS > 9)
-	return column - 7 - (column - 8) % (COLS - 9);
+	return column - 7 - (column - 7) % (COLS - 8);
     else if (COLS > 2)
 	return column - (COLS - 2);
     else