diff --git a/ChangeLog b/ChangeLog
index bab6d295fbb300cd32d9887a2d40f024f7e6306b..7a9acb7fabfac3bfc16a38b94fc1d85ffbcbaf38 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2007-12-08  David Lawrence Ramsey  <pooka109@gmail.com>
+
+	* prompt.c (do_statusbar_mouse, reset_statusbar_cursor,
+	update_statusbar_line, need_statusbar_horizontal_update): Fix
+	minor display and cursor placement problems when scrolling
+	between pages at the statusbar prompt.
+
 2007-12-07  David Lawrence Ramsey  <pooka109@gmail.com>
 
 	* winio.c (get_mouseinput): Fix longstanding problem where mouse
diff --git a/src/prompt.c b/src/prompt.c
index 2f6ad175ab7885153ef43a1aa20e98ede46a8eab..d32c7cb78d485b3f531b438faa2029f1c1618855 100644
--- a/src/prompt.c
+++ b/src/prompt.c
@@ -285,16 +285,15 @@ int do_statusbar_mouse(void)
 
 	assert(prompt != NULL);
 
-	start_col = strlenpt(prompt) + 1;
+	start_col = strlenpt(prompt) + 2;
 
 	/* Move to where the click occurred. */
-	if (mouse_x > start_col && mouse_y == 0) {
+	if (mouse_x >= start_col && mouse_y == 0) {
 	    size_t pww_save = statusbar_pww;
 
 	    statusbar_x = actual_x(answer,
 			get_statusbar_page_start(start_col, start_col +
-			statusbar_xplustabs()) + mouse_x -
-			start_col - 1);
+			statusbar_xplustabs()) + mouse_x - start_col);
 	    statusbar_pww = statusbar_xplustabs();
 
 	    if (need_statusbar_horizontal_update(pww_save))
@@ -865,10 +864,10 @@ size_t get_statusbar_page_start(size_t start_col, size_t column)
 /* Put the cursor in the statusbar prompt at statusbar_x. */
 void reset_statusbar_cursor(void)
 {
-    size_t start_col = strlenpt(prompt) + 1;
+    size_t start_col = strlenpt(prompt) + 2;
     size_t xpt = statusbar_xplustabs();
 
-    wmove(bottomwin, 0, start_col + 1 + xpt -
+    wmove(bottomwin, 0, start_col + xpt -
 	get_statusbar_page_start(start_col, start_col + xpt));
 }
 
@@ -882,7 +881,7 @@ void update_statusbar_line(const char *curranswer, size_t index)
 
     assert(prompt != NULL && index <= strlen(curranswer));
 
-    start_col = strlenpt(prompt) + 1;
+    start_col = strlenpt(prompt) + 2;
     index = strnlenpt(curranswer, index);
     page_start = get_statusbar_page_start(start_col, start_col + index);
 
@@ -910,7 +909,7 @@ void update_statusbar_line(const char *curranswer, size_t index)
  * different pages. */
 bool need_statusbar_horizontal_update(size_t pww_save)
 {
-    size_t start_col = strlenpt(prompt) + 1;
+    size_t start_col = strlenpt(prompt) + 2;
 
     return get_statusbar_page_start(start_col, start_col + pww_save) !=
 	get_statusbar_page_start(start_col, start_col + statusbar_pww);