diff --git a/ChangeLog b/ChangeLog
index 31f2b93184a9a264abee386d8c3bf2b86ab556a0..22a071ea18d7946fe506a644890e0350e8fda558 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -58,6 +58,10 @@ CVS code -
   do_output()
 	- Properly allow wrapping when we insert a tab, for consistency.
 	  (DLR)
+- search.c:
+  do_gotoline()
+	- Properly show an error message if we try to go to line 0,
+	  since the first line in the file is 1. (DLR)
 - utils.c:
   num_of_digits()
 	- Use a size_t instead of an int, and rename to digits(). (DLR)
diff --git a/src/search.c b/src/search.c
index 1c40bc27511851cabe837408774ff10ea1048325..b362509e49f5b2003e7b5214a4ac341ffacdee66 100644
--- a/src/search.c
+++ b/src/search.c
@@ -997,7 +997,7 @@ void do_gotoline(int line, bool save_pos)
 
 	/* Do a bounds check.  Display a warning on an out-of-bounds
 	 * line number only if we hit Enter at the statusbar prompt. */
-	if (!parse_num(answer, &line) || line < 0) {
+	if (!parse_num(answer, &line) || line < 1) {
 	    if (i == 0)
 		statusbar(_("Come on, be reasonable"));
 	    display_main_list();