--- ../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)