Index: /trunk/src/VBox/Frontends/Common/VBoxKeyboard/keyboard.c
===================================================================
--- /trunk/src/VBox/Frontends/Common/VBoxKeyboard/keyboard.c	(revision 30448)
+++ /trunk/src/VBox/Frontends/Common/VBoxKeyboard/keyboard.c	(revision 30449)
@@ -121,6 +121,7 @@
             scan = 0x138;
     }
-    if (keysym != 0 && scan == 0)
-            scan = keyc2scan[code];
+    /* Disabled "keysym != 0" as we can now match keycodes with no keysym */
+    if (/* keysym != 0 && */ scan == 0)
+        scan = keyc2scan[code];
 
     return scan;
@@ -529,7 +530,15 @@
                                   sizeof(main_keyboard_type_list)
                                 / sizeof(main_keyboard_type_list[0]));
+#ifdef DEBUG
+    /* Assertion */
+    if (sizeof(keyc2scan) != sizeof(main_keyboard_type_scans[cMap]))
+    {
+        printf("ERROR: keyc2scan array size doesn't match main_keyboard_type_scans[]!\n");
+        return 0;
+    }
+#endif
     if (cMap >= 0)
     {
-        memcpy(keyc2scan, main_keyboard_type_scans[cMap], KEYC2SCAN_SIZE);
+        memcpy(keyc2scan, main_keyboard_type_scans[cMap], sizeof(keyc2scan));
         return 1;
     }
