--- ../backup/irrlicht-1.8.1/source/Irrlicht/CIrrDeviceLinux.cpp 2012-11-24 19:25:10.000000000 +0100 +++ irrlicht-1.8.1/source/Irrlicht/CIrrDeviceLinux.cpp 2014-01-18 19:08:03.000000000 +0100 @@ -1049,7 +1049,7 @@ irrevent.KeyInput.Control = (event.xkey.state & ControlMask) != 0; irrevent.KeyInput.Shift = (event.xkey.state & ShiftMask) != 0; - event.xkey.state = 0; // ignore shift-ctrl states for figuring out the key + event.xkey.state &= ~(ControlMask|ShiftMask); // ignore shift-ctrl states for figuring out the key XLookupString(&event.xkey, buf, sizeof(buf), &mp.X11Key, NULL); const s32 idx = KeyMap.binary_search(mp); if (idx != -1)