--- old/src/java.desktop/windows/native/libawt/windows/awt_Component.cpp 2016-11-07 14:29:36.570919400 +0300 +++ new/src/java.desktop/windows/native/libawt/windows/awt_Component.cpp 2016-11-07 14:29:35.083230400 +0300 @@ -3523,7 +3523,7 @@ WORD wChar[2]; int converted = 1; - UINT ch = ::MapVirtualKey(wkey, 2); + UINT ch = ::MapVirtualKeyEx(wkey, 2, GetKeyboardLayout()); if (ch & 0x80000000) { // Dead key which is handled as a normal key isDeadKey = deadKeyActive = TRUE;