diff --git a/src/conio/win32cio.c b/src/conio/win32cio.c
index d64cf535cde5521dcc0d1b6f84ca9d632a16763d..606922750391d30a324ad2901bc0f917ba114130 100644
--- a/src/conio/win32cio.c
+++ b/src/conio/win32cio.c
@@ -308,9 +308,9 @@ int win32_keyboardio(int isgetch)
 					if((input.Event.KeyEvent.dwControlKeyState & (RIGHT_ALT_PRESSED|LEFT_ALT_PRESSED|RIGHT_CTRL_PRESSED|LEFT_CTRL_PRESSED|ENHANCED_KEY))
 							|| (input.Event.KeyEvent.wVirtualKeyCode >= VK_F1 && input.Event.KeyEvent.wVirtualKeyCode <= VK_F24)
 							|| !input.Event.KeyEvent.uChar.AsciiChar
-							|| (!(input.Event.KeyEvent.dwControlKeyState & NUMLOCK_ON) && (input.Event.KeyEvent.uChar.AsciiChar >= '0' && input.Event.KeyEvent.uChar.AsciiChar <= '9')))
-						if((input.Event.KeyEvent.dwControlKeyState & RIGHT_ALT_PRESSED|LEFT_ALT_PRESSED)
-								&& (input.Event.KeyEvent.dwControlKeyState & RIGHT_CTRL_PRESSED|LEFT_CTRL_PRESSED)
+							|| (!(input.Event.KeyEvent.dwControlKeyState & NUMLOCK_ON) && (input.Event.KeyEvent.uChar.AsciiChar >= '.' && input.Event.KeyEvent.uChar.AsciiChar <= '9')))
+						/* Is this an AltGr key? */
+						if(((input.Event.KeyEvent.dwControlKeyState & RIGHT_ALT_PRESSED|LEFT_CTRL_PRESSED == RIGHT_ALT_PRESSED|LEFT_CTRL_PRESSED)
 								&& (BYTE)input.Event.KeyEvent.uChar.AsciiChar)
 							lastch=(BYTE)input.Event.KeyEvent.uChar.AsciiChar;
 						else