Index: /trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp
===================================================================
--- /trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp	(revision 52610)
+++ /trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp	(revision 52611)
@@ -11220,4 +11220,6 @@
 
     STAM_COUNTER_INC(&pVCpu->hm.s.StatExitApicAccess);
+    if (rc != VINF_SUCCESS)
+        STAM_COUNTER_INC(&pVCpu->hm.s.StatExitApicAccessToR3);
     return rc;
 }
Index: /trunk/src/VBox/VMM/VMMR3/HM.cpp
===================================================================
--- /trunk/src/VBox/VMM/VMMR3/HM.cpp	(revision 52610)
+++ /trunk/src/VBox/VMM/VMMR3/HM.cpp	(revision 52611)
@@ -5,5 +5,5 @@
 
 /*
- * Copyright (C) 2006-2013 Oracle Corporation
+ * Copyright (C) 2006-2014 Oracle Corporation
  *
  * This file is part of VirtualBox Open Source Edition (OSE), as
@@ -703,4 +703,5 @@
         HM_REG_COUNTER(&pVCpu->hm.s.StatExitMtf,                "/HM/CPU%d/Exit/MonitorTrapFlag", "Monitor Trap Flag.");
         HM_REG_COUNTER(&pVCpu->hm.s.StatExitApicAccess,         "/HM/CPU%d/Exit/ApicAccess", "APIC access. Guest attempted to access memory at a physical address on the APIC-access page.");
+        HM_REG_COUNTER(&pVCpu->hm.s.StatExitApicAccessToR3,     "/HM/CPU%d/Exit/ApicAccessToR3", "APIC access causing us to go to ring-3.");
 
         HM_REG_COUNTER(&pVCpu->hm.s.StatSwitchGuestIrq,         "/HM/CPU%d/Switch/IrqPending", "PDMGetInterrupt() cleared behind our back!?!.");
@@ -1232,10 +1233,9 @@
         else
         {
-            /** @todo This cannot possibly work, there are other places which assumes
-             *        this allocation cannot fail (see HMR3CanExecuteGuest()). Make this
-             *        a failure case. */
             LogRel(("HM: No real mode VT-x support (PDMR3VMMDevHeapAlloc returned %Rrc)\n", rc));
             pVM->hm.s.vmx.pRealModeTSS = NULL;
             pVM->hm.s.vmx.pNonPagingModeEPTPageTable = NULL;
+            return VMSetError(pVM, rc, RT_SRC_POS,
+                              "HM failure: No real mode VT-x support (PDMR3VMMDevHeapAlloc returned %Rrc)", rc);
         }
     }
@@ -2466,5 +2466,5 @@
         /*
          * The VMM device heap is a requirement for emulating real mode or protected mode without paging with the unrestricted
-         * guest execution feature i missing (VT-x only).
+         * guest execution feature is missing (VT-x only).
          */
         if (fSupportsRealMode)
@@ -2666,5 +2666,5 @@
 
 /**
- * Checks if we are currently using hardware accelerated raw mode.
+ * Checks if we are currently using hardware acceleration.
  *
  * @returns true if hardware acceleration is being used, otherwise false.
@@ -2678,6 +2678,5 @@
 
 /**
- * External interface for querying whether hardware accelerated raw mode is
- * enabled.
+ * External interface for querying whether hardware acceleration is enabled.
  *
  * @returns true if VT-x or AMD-V is being used, otherwise false.
Index: /trunk/src/VBox/VMM/include/HMInternal.h
===================================================================
--- /trunk/src/VBox/VMM/include/HMInternal.h	(revision 52610)
+++ /trunk/src/VBox/VMM/include/HMInternal.h	(revision 52611)
@@ -912,4 +912,5 @@
     STAMCOUNTER             StatExitMtf;
     STAMCOUNTER             StatExitApicAccess;
+    STAMCOUNTER             StatExitApicAccessToR3;
     STAMCOUNTER             StatPendingHostIrq;
 
