diff --git a/src/conio/sdl_con.c b/src/conio/sdl_con.c
index 5a7f3a99fba552992497c22afaacb94f57c78a50..921c87bc15d15a7357de3c182d14a72bc9937664 100644
--- a/src/conio/sdl_con.c
+++ b/src/conio/sdl_con.c
@@ -831,9 +831,8 @@ void sdl_video_event_thread(void *data)
 						sdl_add_key(sdl_get_char_code(ev.key.keysym.sym, ev.key.keysym.mod));
 					}
 					else if (!isprint(ev.key.keysym.sym)) {
-						uint8_t ch = cpchar_from_unicode_cpoint(getcodepage(), ev.key.keysym.sym, 0);
-						if (ch)
-							sdl_add_key(ch);
+						if (ev.key.keysym.sym < 127)
+							sdl_add_key(ev.key.keysym.sym);
 					}
 					break;
 				case SDL_TEXTINPUT: