diff --git a/ChangeLog b/ChangeLog
index 73252f70979a24aaa07285bdb2f6b44020385355..c5337d62e929c33c84d3f8dfe977dd53777c2a9a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -27,10 +27,16 @@ CVS code
 	  (David Benbennick).
   colortoint, parse_colors()
 	- Don't add strings with invalid fg colors at all.
+- search.c:
+  do_gotoline()
+	- Only goto_abort() if we *didnt* abort the command, making
+	  the function seem horribly misnamed ;-) (David Benbennick).
 - winio.c:
   nanogetstr()
 	- Remove unnecessary reset of x since it is now handled
 	  elsewhere (David Lawrence Ramsey).
+  statusq()
+	- Always blank the statusbar on exit (David Benbennick).
 - nano.1, nano.1.html:
 	- Add initialization file comments, change some options from 
 	  bracketed to underlined to emphasize that they are not 
diff --git a/search.c b/search.c
index 5af816562139ff127f2a4b627142f078975af8b8..06dc82c5c3a878d216167f5bd405705ae8c5af26 100644
--- a/search.c
+++ b/search.c
@@ -776,12 +776,16 @@ void goto_abort(void)
 int do_gotoline(int line, int save_pos)
 {
     if (line <= 0) {		/* Ask for it */
-	if (statusq(0, goto_list, (line ? answer : ""),
+	int st = statusq(FALSE, goto_list, line != 0 ? answer : "",
 #ifndef NANO_SMALL
-	    0,
+			NULL,
 #endif
-	    _("Enter line number"))) {
+			_("Enter line number"));
+
+	/* Cancel, or Enter with blank string. */
+	if (st == -1 || st == -2)
 	    statusbar(_("Aborted"));
+	if (st != 0) {
 	    goto_abort();
 	    return 0;
 	}
diff --git a/winio.c b/winio.c
index bc3062fca1b97f3cc43e116ce22264343da4ac03..4529a92d9e555addb21e7a729bbaa5891f850db2 100644
--- a/winio.c
+++ b/winio.c
@@ -1197,9 +1197,8 @@ int statusq(int tabs, const shortcut *s, const char *def,
 	ret = -1;
 	resetpos = 1;
 	break;
-    default:
-	blank_statusbar();
     }
+    blank_statusbar();
 
 #ifdef DEBUG
     fprintf(stderr, _("I got \"%s\"\n"), answer);