Index: /trunk/src/VBox/Frontends/Common/VBoxKeyboard/keyboard.c
===================================================================
--- /trunk/src/VBox/Frontends/Common/VBoxKeyboard/keyboard.c	(revision 32895)
+++ /trunk/src/VBox/Frontends/Common/VBoxKeyboard/keyboard.c	(revision 32896)
@@ -107,5 +107,5 @@
     KeySym keysym = XKeycodeToKeysym(display, code, 0);
     scan = 0;
-    if (keysym != 0)  /* otherwise, keycode not used */
+    if (keyc2scan[code] == 0 && keysym != 0)
     {
         if ((keysym >> 8) == 0xFF)          /* non-character key */
@@ -120,6 +120,5 @@
             scan = 0x138;
     }
-    /* Disabled "keysym != 0" as we can now match keycodes with no keysym */
-    if (/* keysym != 0 && */ scan == 0)
+    if (keyc2scan[code])
         scan = keyc2scan[code];
 
@@ -634,5 +633,5 @@
             keyc2scan[(*remapScancodes)[0]] = (*remapScancodes)[1];
 
-    return (byLayout || byType) ? 1 : 0;
+    return (byLayout || byType || byXkb) ? 1 : 0;
 }
 
