diff --git a/ChangeLog b/ChangeLog
index b5a63cde331ae6fb836bba8f5cdeec5d61588453..63b8ff628048e36faed1241e4b1e8944c0e48ba0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -23,6 +23,11 @@ CVS code -
 	  set errno to EINVAL as well as return -1 if they fail.  This
 	  matches the manual page. (DLR)
 - winio.c:
+  parse_kbinput()
+	- Interpret Shift-Begin, Shift-Delete, Shift-End, Shift-Home,
+	  Shift-Insert, and Shift-Suspend as Begin, Delete, End, Home,
+	  Insert, and Suspend, respectively, regardless of whether
+	  --rebindkeypad is used. (DLR, found by David Benbennick)
   edit_redraw()
 	- If either current or old_current is offscreen, we're not on
 	  the first page, and/or we're not on the same page as before,
diff --git a/src/winio.c b/src/winio.c
index 7f894d93b96448bc27ba3e9993cf5fa964b98d10..487365d7c95ca53b31782307595992fb314e326e 100644
--- a/src/winio.c
+++ b/src/winio.c
@@ -469,10 +469,35 @@ int parse_kbinput(WINDOW *win, bool *meta_key, bool *func_key
 			    retval = NANO_END_KEY;
 			    break;
 #endif
-#ifdef KEY_SUSPEND
-			/* Slang doesn't support KEY_SUSPEND. */
-			case KEY_SUSPEND:
-			    retval = NANO_SUSPEND_KEY;
+#ifdef KEY_SBEG
+			/* Slang doesn't support KEY_SBEG. */
+			case KEY_SBEG:	/* Center (5) on numeric keypad
+					 * with NumLock off. */
+			    break;
+#endif
+#ifdef KEY_SDC
+			/* Slang doesn't support KEY_SDC. */
+			case KEY_SDC:
+			    retval = NANO_DELETE_KEY;
+			    break;
+#endif
+#ifdef KEY_SEND
+			/* HP-UX 10 and 11 don't support KEY_SEND. */
+			case KEY_SEND:
+			    retval = NANO_END_KEY;
+			    break;
+#endif
+#ifdef KEY_SHOME
+			/* HP-UX 10 and 11 and Slang don't support
+			 * KEY_SHOME. */
+			case KEY_SHOME:
+			    retval = NANO_HOME_KEY;
+			    break;
+#endif
+#ifdef KEY_SIC
+			/* Slang doesn't support KEY_SIC. */
+			case KEY_SIC:
+			    retval = NANO_INSERTFILE_KEY;
 			    break;
 #endif
 #ifdef KEY_SLEFT
@@ -486,6 +511,18 @@ int parse_kbinput(WINDOW *win, bool *meta_key, bool *func_key
 			case KEY_SRIGHT:
 			    retval = NANO_FORWARD_KEY;
 			    break;
+#endif
+#ifdef KEY_SSUSPEND
+			/* Slang doesn't support KEY_SSUSPEND. */
+			case KEY_SSUSPEND:
+			    retval = NANO_SUSPEND_KEY;
+			    break;
+#endif
+#ifdef KEY_SUSPEND
+			/* Slang doesn't support KEY_SUSPEND. */
+			case KEY_SUSPEND:
+			    retval = NANO_SUSPEND_KEY;
+			    break;
 #endif
 			default:
 			    retval = *kbinput;