diff --git a/ChangeLog b/ChangeLog
index 4b561a8ca45ca050f83479f311a6ac298e0f0a68..cf68ea1e7ccf3c9fda0a99515107ec19a476ea2f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -45,6 +45,10 @@ General
 	  window when using nohelp toggle (bug discovered by Rocco Corsi).
 - nano.1, nano.1.html:
 	- Updated man page for -b, -e, -f and expanded explanation for -p.
+- winio.c
+  do_help()
+	- Force keypad on so F-keys and PageUp/Down will work properly.
+	  Added check for NANO_EXIT_FKEY to loop.
 - utils.c:
   new_magicline()
 	- Increment totsize!!  We decrement it when we've read a file, 
diff --git a/proto.h b/proto.h
index 22f91b7d0a3e627be57bd7ed1bdc91b6ff328306..eb8c517e9407d4737cdaf0e14273534a4911dc41 100644
--- a/proto.h
+++ b/proto.h
@@ -134,6 +134,7 @@ void search_init_globals(void);
 void replace_abort(void);
 void add_to_cutbuffer(filestruct * inptr);
 void do_replace_highlight(int highlight_flag, char *word);
+void keypad_on(int yesno);
 #ifdef NANO_EXTRA
 void do_credits(void);
 #endif
diff --git a/winio.c b/winio.c
index 3ac39c71973120d3d8d3be2f763c17510159ea9e..4597d3fb11b21608ec42149e00e16e9d71613bf0 100644
--- a/winio.c
+++ b/winio.c
@@ -1180,6 +1180,11 @@ int do_help(void)
     int i, j, row = 0, page = 1, kbinput = 0, no_more = 0;
     int no_help_flag = 0;
 
+
+    /* Oh well, they've asked for the help menu, if the keypad is not on now
+       we're going to have to turn it on */
+    keypad_on(TRUE);
+
     blank_edit();
     curs_set(0);
     blank_statusbar();
@@ -1265,7 +1270,9 @@ int do_help(void)
 	    no_more = 1;
 	    continue;
 	}
-    } while ((kbinput = wgetch(edit)) != NANO_EXIT_KEY);
+    } while ((kbinput = wgetch(edit)) != NANO_EXIT_KEY && 
+      kbinput != NANO_EXIT_FKEY);
+
     if (no_help_flag) {
 	werase(bottomwin);
 	wrefresh(bottomwin);