Index: /trunk/src/VBox/Frontends/VirtualBox/src/VBoxConsoleView.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/VBoxConsoleView.cpp	(revision 26627)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/VBoxConsoleView.cpp	(revision 26628)
@@ -2392,4 +2392,14 @@
         UInt32 keyCode = ~0U;
         ::GetEventParameter (inEvent, kEventParamKeyCode, typeUInt32, NULL, sizeof (keyCode), NULL, &keyCode);
+        /* The usb keyboard driver translates these codes to different virtual
+         * key codes depending of the keyboard type. There are ANSI, ISO, JIS
+         * and unknown. For European keyboards (ISO) the key 0xa and 0x32 have
+         * to be switched. Here we are doing this at runtime, cause the user
+         * can have more than one keyboard (of different type), where he may
+         * switch at will all the time. Default is the ANSI standard as defined
+         * in g_aDarwinToSet1. */
+        if (   (keyCode == 0xa || keyCode == 0x32)
+            && KBGetLayoutType(LMGetKbdType()) == kKeyboardISO)
+            keyCode = 0x3c - keyCode;
         unsigned scanCode = ::DarwinKeycodeToSet1Scancode (keyCode);
         if (scanCode)
Index: /trunk/src/VBox/Frontends/VirtualBox/src/darwin/DarwinKeyboard.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/darwin/DarwinKeyboard.cpp	(revision 26627)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/darwin/DarwinKeyboard.cpp	(revision 26628)
@@ -124,6 +124,5 @@
     0x2e,                       /* QZ_c            0x08 */
     0x2f,                       /* QZ_v            0x09 */
-//    0x56,                       /* between lshift and z. 'INT 1'? */
-    0x29,                       /* between lshift and z. 'INT 1'? */
+    0x56,                       /* between lshift and z. 'INT 1'? */
     0x30,                       /* QZ_b            0x0B */
     0x10,                       /* QZ_q            0x0C */
@@ -165,6 +164,5 @@
     0x0f,                       /* QZ_TAB          0x30 */
     0x39,                       /* QZ_SPACE        0x31 */
-//    0x29,                       /* QZ_BACKQUOTE    0x32 */
-    0x56,                       /* QZ_BACKQUOTE    0x32 */
+    0x29,                       /* QZ_BACKQUOTE    0x32 */
     0x0e,                       /* QZ_BACKSPACE    0x33 */
     0x9c,                       /* QZ_IBOOK_ENTER  0x34 */
