Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp	(revision 56928)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp	(revision 56929)
@@ -176,5 +176,4 @@
 
 # define BOOL PRBool
-# include "VBoxX11Helper.h"
 #endif /* Q_WS_X11 */
 
@@ -232,5 +231,7 @@
     , m_fSeparateProcess(false)
     , m_pMediumEnumerator(0)
-    , mIsKWinManaged (false)
+#ifdef Q_WS_X11
+    , m_enmWindowManagerType(X11WMType_Unknown)
+#endif /* Q_WS_X11 */
 #if defined(DEBUG_bird)
     , mAgressiveCaching(false)
@@ -3948,6 +3949,7 @@
 
 #ifdef Q_WS_X11
-    mIsKWinManaged = X11IsWindowManagerKWin();
-#endif
+    /* Acquire current Window Manager type: */
+    m_enmWindowManagerType = X11WindowManagerType();
+#endif /* Q_WS_X11 */
 
 #ifdef VBOX_WITH_DEBUGGER_GUI
Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.h	(revision 56928)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.h	(revision 56929)
@@ -35,4 +35,7 @@
 #include "UIMediumDefs.h"
 #include "VBoxGlobalSettings.h"
+#ifdef Q_WS_X11
+# include "VBoxX11Helper.h"
+#endif /* Q_WS_X11 */
 
 /* COM includes: */
@@ -149,5 +152,8 @@
     QList<QUrl> &argUrlList() { return m_ArgUrlList; }
 
-    bool isKWinManaged() const { return mIsKWinManaged; }
+#ifdef Q_WS_X11
+    /** X11: Returns the type of the Window Manager we are running under. */
+    X11WMType typeOfWindowManager() const { return m_enmWindowManagerType; }
+#endif /* Q_WS_X11 */
 
     /** Returns whether we should restore current snapshot before VM started. */
@@ -480,5 +486,8 @@
     mutable QReadWriteLock m_mediumEnumeratorDtorRwLock;
 
-    bool mIsKWinManaged;
+#ifdef Q_WS_X11
+    /** X11: Holds the type of the Window Manager we are running under. */
+    X11WMType m_enmWindowManagerType;
+#endif /* Q_WS_X11 */
 
     /** The --aggressive-caching / --no-aggressive-caching option. */
Index: /trunk/src/VBox/Frontends/VirtualBox/src/platform/x11/VBoxX11Helper.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/platform/x11/VBoxX11Helper.cpp	(revision 56928)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/platform/x11/VBoxX11Helper.cpp	(revision 56929)
@@ -16,9 +16,13 @@
  */
 
+/* Qt includes: */
+#include <QX11Info>
+#include <QString>
+
+/* GUI includes: */
 #include "VBoxX11Helper.h"
 
+/* Other VBox includes: */
 #include <iprt/cdefs.h>
-#include <iprt/string.h>
-#include <QX11Info>
 
 /* rhel3 build hack */
@@ -73,5 +77,5 @@
 }
 
-bool X11IsWindowManagerKWin()
+X11WMType X11WindowManagerType()
 {
     /* Get display: */
@@ -84,5 +88,5 @@
     unsigned long ulDummy;
     unsigned char *pcData = 0;
-    bool fIsKWinManaged = false;
+    X11WMType wmType = X11WMType_Unknown;
 
     /* Ask if root-window supports check for WM name: */
@@ -106,5 +110,9 @@
                                    &iReturnedFormat, &ulReturnedItemCount, &ulDummy, &pcData) == Success)
             {
-                fIsKWinManaged = RTStrCmp((const char*)pcData, "KWin") == 0;
+                if (QString((const char*)pcData).contains("KWin", Qt::CaseInsensitive))
+                    wmType = X11WMType_KWin;
+                else
+                if (QString((const char*)pcData).contains("Mutter", Qt::CaseInsensitive))
+                    wmType = X11WMType_Mutter;
                 if (pcData)
                     XFree(pcData);
@@ -112,5 +120,5 @@
         }
     }
-    return fIsKWinManaged;
+    return wmType;
 }
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/platform/x11/VBoxX11Helper.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/platform/x11/VBoxX11Helper.h	(revision 56928)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/platform/x11/VBoxX11Helper.h	(revision 56929)
@@ -19,4 +19,12 @@
 #define ___VBoxX11Helpers_h___
 
+/** X11: Known Window Manager types. */
+enum X11WMType
+{
+    X11WMType_Unknown,
+    X11WMType_KWin,
+    X11WMType_Mutter,
+};
+
 /** X11: Inits the screen saver save/restore mechanism. */
 void X11ScreenSaverSettingsInit();
@@ -26,6 +34,6 @@
 void X11ScreenSaverSettingsRestore();
 
-/** X11: Determines whether current Window Manager is KWin. */
-bool X11IsWindowManagerKWin();
+/** X11: Determines and returns current Window Manager type. */
+X11WMType X11WindowManagerType();
 
 #endif /* !___VBoxX11Helpers_h___ */
