diff --git a/ChangeLog b/ChangeLog
index 76795d7138845cac0d8b49e38f4d8018edcb4647..af62c5c2be9c7ad11b1d5ea1315310c93747270a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -5,6 +5,7 @@
 	* src/global.c (first_sc_for): Move this too to a better place.
 	* src/prompt.c (do_yesno_prompt): Use the new and more direct
 	func_from_key() wrapper instead of get_shortcut().
+	* src/text.c (do_linter): Likewise.
 
 2014-07-24  Jordi Mallach  <jordi@gnu.org>
 	* doc/texinfo/nano.texi, doc/man/nanorc.5: Typo fix.
diff --git a/src/text.c b/src/text.c
index 4cf746b584979718d702e9814ffbcf8465dd04d4..ad082e1172fe083f75150cda5d218ce87aee7845 100644
--- a/src/text.c
+++ b/src/text.c
@@ -2934,7 +2934,6 @@ void do_linter(void)
     static char **lintargs = NULL;
     char *lintcopy;
     char *convendptr = NULL;
-    const sc *s;
     lintstruct *lints = NULL, *tmplint = NULL, *curlint = NULL;
 
     if (!openfile->syntax || !openfile->syntax->linter) {
@@ -3135,9 +3134,10 @@ void do_linter(void)
     bottombars(MLINTER);
     tmplint = NULL;
     curlint = lints;
-    while (1) {
+    while (TRUE) {
 	ssize_t tmpcol = 1;
 	int kbinput;
+	functionptrtype func;
 
 	if (curlint->colno > 0)
 	    tmpcol = curlint->colno;
@@ -3193,30 +3193,24 @@ void do_linter(void)
 	}
 
 	kbinput = get_kbinput(bottomwin);
-	s = get_shortcut(&kbinput);
+	func = func_from_key(&kbinput);
 	tmplint = curlint;
 
-	if (!s)
-	    continue;
-	else if (s->scfunc == do_cancel)
+	if (func == do_cancel)
 	    break;
-	else if (s->scfunc == do_help_void) {
+	else if (func == do_help_void) {
 	    tmplint = NULL;
 	    do_help_void();
-	} else if (s->scfunc == do_page_down) {
+	} else if (func == do_page_down) {
 	    if (curlint->next != NULL)
 		curlint = curlint->next;
-	    else {
+	    else
 		statusbar(_("At last message"));
-		continue;
-	    }
-	} else if (s->scfunc == do_page_up) {
+	} else if (func == do_page_up) {
 	    if (curlint->prev != NULL)
 		curlint = curlint->prev;
-	    else {
+	    else
 		statusbar(_("At first message"));
-		continue;
-	    }
 	}
     }
     blank_statusbar();