diff --git a/src/sbbs3/inkey.cpp b/src/sbbs3/inkey.cpp
index b682ce035a17c285da8a1660aeea942569778026..59280afac6c9032197014e6ae898f4bc33ab98fa 100644
--- a/src/sbbs3/inkey.cpp
+++ b/src/sbbs3/inkey.cpp
@@ -290,6 +290,18 @@ char sbbs_t::handle_ctrlkey(char ch, long mode)
 						case 'F':	/* Xterm: cursor preceding line */
 						case 'K':	/* ANSI:  clear-to-end-of-line */
 							return(CTRL_E);	/* ctrl-e (end line) */
+						case '~':	/* VT-220 (XP telnet.exe) */
+							switch(atoi(str)) {
+								case 1:
+									return(CTRL_B);
+								case 2:
+									return(CTRL_V);
+								case 3:
+									return(DEL);
+								case 4:
+									return(CTRL_E);
+							}
+							break;
 					}
 					ungetkey('[');
 					for(j=0;j<i;j++)