--- old/src/windows/native/sun/windows/awt_Component.cpp 2013-08-01 15:55:34.491463900 +0400 +++ new/src/windows/native/sun/windows/awt_Component.cpp 2013-08-01 15:55:33.834426300 +0400 @@ -3528,8 +3528,12 @@ if (ops == SAVE) { transTable.put(reinterpret_cast(static_cast(wkey)), reinterpret_cast(static_cast(translation))); - deadKeyFlagTable.put(reinterpret_cast(static_cast(wkey)), - reinterpret_cast(static_cast(deadKeyFlag))); + if (deadKeyFlag) { + deadKeyFlagTable.put(reinterpret_cast(static_cast(wkey)), + reinterpret_cast(static_cast(deadKeyFlag))); + } else { + deadKeyFlagTable.remove(reinterpret_cast(static_cast(wkey))); + } } isDeadKey = deadKeyFlag;