Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp	(revision 39799)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp	(revision 39800)
@@ -19,4 +19,5 @@
 #include <VBox/vd.h>
 #include <VBox/version.h>
+#include <stdio.h>
 
 #include "VBoxUtils.h"
@@ -281,5 +282,6 @@
     , mRecompileSupervisor(false)
     , mRecompileUser(false)
-    , mVerString ("1.0")
+    , mVerString("1.0")
+    , m3DAvailable(-1)
 {
 }
@@ -391,4 +393,11 @@
 }
 
+bool VBoxGlobal::is3DAvailable()
+{
+    if (m3DAvailable < 0)
+        m3DAvailable = virtualBox().GetHost().GetAcceleration3DAvailable();
+    return m3DAvailable;
+}
+
 /**
  *  Sets the new global settings and saves them to the VirtualBox server.
@@ -1712,5 +1721,5 @@
         }
 
-        QString acc3d = aMachine.GetAccelerate3DEnabled()
+        QString acc3d = is3DAvailable() && aMachine.GetAccelerate3DEnabled()
             ? tr ("Enabled", "details report (3D Acceleration)")
             : tr ("Disabled", "details report (3D Acceleration)");
Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.h	(revision 39799)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.h	(revision 39800)
@@ -150,4 +150,6 @@
     QWidget *mainWindow() const { return mMainWindow; }
 
+    bool is3DAvailable();
+
 #ifdef VBOX_GUI_WITH_PIDFILE
     void createPidfile();
@@ -860,4 +862,6 @@
     QString mVerString;
     QString mBrandingConfig;
+    
+    int m3DAvailable;
 
     QList <QString> mFamilyIDs;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/selector/UIVMDesktop.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/selector/UIVMDesktop.cpp	(revision 39799)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/selector/UIVMDesktop.cpp	(revision 39800)
@@ -840,5 +840,6 @@
                 accel << tr("2D Video", "details report");
 #endif /* VBOX_WITH_VIDEOHWACCEL */
-            if (m_machine.GetAccelerate3DEnabled())
+            if (   vboxGlobal().is3DAvailable()
+                && m_machine.GetAccelerate3DEnabled())
                 accel << tr("3D", "details report");
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.cpp	(revision 39799)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.cpp	(revision 39800)
@@ -523,5 +523,11 @@
     mLeMonitors->setEnabled(isMachineOffline());
     mLbOptions->setEnabled(isMachineOffline());
-    mCb3D->setEnabled(isMachineOffline() && vboxGlobal().virtualBox().GetHost().GetAcceleration3DAvailable());
+    if (vboxGlobal().is3DAvailable())
+        mCb3D->setEnabled(isMachineOffline());
+    else
+    {
+        mCb3D->setEnabled(false);
+        mCb3D->setChecked(false);
+    }
 #ifdef VBOX_WITH_VIDEOHWACCEL
     mCb2DVideo->setEnabled(isMachineOffline() && VBoxGlobal::isAcceleration2DVideoAvailable());
