Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UISession.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UISession.cpp	(revision 53028)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UISession.cpp	(revision 53029)
@@ -981,4 +981,9 @@
         return false;
 
+    /* Get guest: */
+    m_guest = m_console.GetGuest();
+    if (m_guest.isNull())
+        return false;
+
     /* Get mouse: */
     m_mouse = m_console.GetMouse();
@@ -986,7 +991,7 @@
         return false;
 
-    /* Get guest: */
-    m_guest = m_console.GetGuest();
-    if (m_guest.isNull())
+    /* Get keyboard: */
+    m_keyboard = m_console.GetKeyboard();
+    if (m_keyboard.isNull())
         return false;
 
@@ -1362,11 +1367,15 @@
         m_debugger.detach();
 
+    /* Detach keyboard: */
+    if (!m_keyboard.isNull())
+        m_keyboard.detach();
+
+    /* Detach mouse: */
+    if (!m_mouse.isNull())
+        m_mouse.detach();
+
     /* Detach guest: */
     if (!m_guest.isNull())
         m_guest.detach();
-
-    /* Detach mouse: */
-    if (!m_mouse.isNull())
-        m_mouse.detach();
 
     /* Detach display: */
Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UISession.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UISession.h	(revision 53028)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UISession.h	(revision 53029)
@@ -33,6 +33,7 @@
 #include "CConsole.h"
 #include "CDisplay.h"
+#include "CGuest.h"
 #include "CMouse.h"
-#include "CGuest.h"
+#include "CKeyboard.h"
 #include "CMachineDebugger.h"
 
@@ -103,8 +104,10 @@
     /** Returns the console's display instance. */
     CDisplay& display() { return m_display; }
+    /** Returns the console's guest instance. */
+    CGuest& guest() { return m_guest; }
     /** Returns the console's mouse instance. */
     CMouse& mouse() { return m_mouse; }
-    /** Returns the console's guest instance. */
-    CGuest& guest() { return m_guest; }
+    /** Returns the console's keyboard instance. */
+    CKeyboard& keyboard() { return m_keyboard; }
     /** Returns the console's debugger instance. */
     CMachineDebugger& debugger() { return m_debugger; }
@@ -385,8 +388,10 @@
     /** Holds the console's display instance. */
     CDisplay m_display;
+    /** Holds the console's guest instance. */
+    CGuest m_guest;
     /** Holds the console's mouse instance. */
     CMouse m_mouse;
-    /** Holds the console's guest instance. */
-    CGuest m_guest;
+    /** Holds the console's keyboard instance. */
+    CKeyboard m_keyboard;
     /** Holds the console's debugger instance. */
     CMachineDebugger m_debugger;
