Index: /trunk/src/VBox/Main/ConsoleImpl2.cpp
===================================================================
--- /trunk/src/VBox/Main/ConsoleImpl2.cpp	(revision 26661)
+++ /trunk/src/VBox/Main/ConsoleImpl2.cpp	(revision 26662)
@@ -394,4 +394,15 @@
         rc = CFGMR3InsertNode(pRoot, "CPUM", &pCPUM);                               RC_CHECK();
         rc = CFGMR3InsertInteger(pCPUM, "NT4LeafLimit", true);                      RC_CHECK();
+    }
+
+    if (osTypeId == "MacOS")
+    {
+        /*
+         * Expose extended MWAIT features to Mac OS guests.
+         */
+        LogRel(("Using MWAIT extensions\n"));
+        PCFGMNODE pCPUM;
+        rc = CFGMR3InsertNode(pRoot, "CPUM", &pCPUM);                               RC_CHECK();
+        rc = CFGMR3InsertInteger(pCPUM, "MWaitExtensions", true);                   RC_CHECK();
     }
 
Index: /trunk/src/VBox/VMM/CPUM.cpp
===================================================================
--- /trunk/src/VBox/VMM/CPUM.cpp	(revision 26661)
+++ /trunk/src/VBox/VMM/CPUM.cpp	(revision 26662)
@@ -621,4 +621,12 @@
 
     pCPUM->aGuestCpuIdStd[5].ecx = pCPUM->aGuestCpuIdStd[5].edx = 0;
+    /** @cfgm{/CPUM/MWaitExtensions, boolean, false}
+     * Expose MWAIT extended features to the guest.
+     * For now we expose just MWAIT break on interrupt feature (bit 1)
+     */
+    bool fMWaitExtensions;
+    rc = CFGMR3QueryBoolDef(pCpumCfg, "MWaitExtensions", &fMWaitExtensions, false); AssertRCReturn(rc, rc);
+    if (fMWaitExtensions)
+        pCPUM->aGuestCpuIdStd[5].ecx = 3;
 
     /*
