Index: trunk/src/VBox/Frontends/VirtualBox/include/VBoxProblemReporter.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/include/VBoxProblemReporter.h	(revision 5803)
+++ trunk/src/VBox/Frontends/VirtualBox/include/VBoxProblemReporter.h	(revision 5804)
@@ -254,5 +254,5 @@
                              const QString &aResult);
 
-    bool confirmInputCapture();
+    bool confirmInputCapture (bool *aAutoConfirmed = NULL);
     void remindAboutAutoCapture();
     void remindAboutMouseIntegration (bool aSupportsAbsolute);
Index: trunk/src/VBox/Frontends/VirtualBox/src/VBoxConsoleView.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/VBoxConsoleView.cpp	(revision 5803)
+++ trunk/src/VBox/Frontends/VirtualBox/src/VBoxConsoleView.cpp	(revision 5804)
@@ -1961,4 +1961,8 @@
 //                captureMouse (true);
         }
+
+        /* reset the single-time disable capture flag */
+        if (mDisableAutoCapture)
+            mDisableAutoCapture = false;
     }
     else
@@ -2231,7 +2235,14 @@
                              * dialog result itself */
                             mDisableAutoCapture = true;
-                            ok = vboxProblem().confirmInputCapture();
-                            mDisableAutoCapture = false;
+                            bool autoConfirmed = false;
+                            ok = vboxProblem().confirmInputCapture (&autoConfirmed);
+                            if (autoConfirmed)
+                                mDisableAutoCapture = false;
+                            /* otherwise, the disable flag will be reset in
+                             * the next console view's foucs in event (since
+                             * may happen asynchronously on some platforms,
+                             * after we return from this code) */
                         }
+
                         if (ok)
                         {
@@ -2572,6 +2583,13 @@
                      * dialog result itself */
                     mDisableAutoCapture = true;
-                    bool ok = vboxProblem().confirmInputCapture();
-                    mDisableAutoCapture = false;
+                    bool autoConfirmed = false;
+                    bool ok = vboxProblem().confirmInputCapture (&autoConfirmed);
+                    if (autoConfirmed)
+                        mDisableAutoCapture = false;
+                    /* otherwise, the disable flag will be reset in
+                     * the next console view's foucs in event (since
+                     * may happen asynchronously on some platforms,
+                     * after we return from this code) */
+
                     if (ok)
                     {
Index: trunk/src/VBox/Frontends/VirtualBox/src/VBoxProblemReporter.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/VBoxProblemReporter.cpp	(revision 5803)
+++ trunk/src/VBox/Frontends/VirtualBox/src/VBoxProblemReporter.cpp	(revision 5804)
@@ -1447,9 +1447,10 @@
 /**
  *  @return @c true if the user has confirmed input capture (this is always
- *  the case if the dialog was autoconfirmed).
+ *  the case if the dialog was autoconfirmed). @a aAutoConfirmed, when not
+ *  NULL, will receive @c true if the dialog wasn't actually shown.
  */
-bool VBoxProblemReporter::confirmInputCapture()
-{
-    return messageOkCancel (&vboxGlobal().consoleWnd(), Info,
+bool VBoxProblemReporter::confirmInputCapture (bool *aAutoConfirmed /* = NULL */)
+{
+    int rc = message (&vboxGlobal().consoleWnd(), Info,
         tr ("<p>You have <b>clicked the mouse</b> inside the Virtual Machine display "
             "or pressed the <b>host key</b>. This will cause the Virtual Machine to "
@@ -1471,5 +1472,13 @@
             .arg (QIHotKeyEdit::keyName (vboxGlobal().settings().hostKey())),
         "confirmInputCapture",
+        QIMessageBox::Ok | QIMessageBox::Default,
+        QIMessageBox::Cancel | QIMessageBox::Escape,
+        0,
         tr ("Capture", "do input capture"));
+
+    if (aAutoConfirmed)
+        *aAutoConfirmed = (rc & AutoConfirmed);
+
+    return (rc & QIMessageBox::ButtonMask) == QIMessageBox::Ok;
 }
 
@@ -1575,20 +1584,19 @@
 bool VBoxProblemReporter::remindAboutInaccessibleMedia()
 {
-    int rc = message (
-        &vboxGlobal().selectorWnd(),
-        Warning,
+    int rc = message (&vboxGlobal().selectorWnd(), Warning,
         tr ("<p>One or more of the registered virtual hard disks, CD/DVD or "
             "floppy media are not currently accessible. As a result, you will "
             "not be able to operate virtual machines that use these media until "
             "they become accessible later.</p>"
-            "<p>Press <b>OK</b> to open the Virtual Disk Manager window and "
+            "<p>Press <b>Check</b> to open the Virtual Disk Manager window and "
             "see what media are inaccessible, or press <b>Ignore</b> to "
             "ignore this message.</p>"),
         "remindAboutInaccessibleMedia",
         QIMessageBox::Ok | QIMessageBox::Default,
-        QIMessageBox::Ignore | QIMessageBox::Escape
-    );
-
-    return rc == QIMessageBox::Ok && !(rc & AutoConfirmed);
+        QIMessageBox::Ignore | QIMessageBox::Escape,
+        0,
+        tr ("Check", "inaccessible media message box"));
+
+    return rc == QIMessageBox::Ok; /* implies !AutoConfirmed */
 }
 
