Index: /trunk/src/VBox/VMM/VMMAll/IEMAllCImplVmxInstr.cpp.h
===================================================================
--- /trunk/src/VBox/VMM/VMMAll/IEMAllCImplVmxInstr.cpp.h	(revision 76001)
+++ /trunk/src/VBox/VMM/VMMAll/IEMAllCImplVmxInstr.cpp.h	(revision 76002)
@@ -3058,4 +3058,9 @@
      * check for it here.
      */
+
+    /* Clear the force-flag indicating that monitor-trap flag is no longer active. */
+    VMCPU_FF_CLEAR(pVCpu, VMCPU_FF_VMX_PREEMPT_TIMER);
+
+    /* Cause the MTF VM-exit. The VM-exit qualification MBZ. */
     iemVmxVmcsSetExitQual(pVCpu, 0);
     return iemVmxVmexit(pVCpu, VMX_EXIT_MTF);
@@ -3772,7 +3777,9 @@
                 pVmcs->u32PreemptTimer = 0;
 
+            /* Clear the force-flag indicating the VMX-preemption timer no longer active. */
+            VMCPU_FF_CLEAR(pVCpu, VMCPU_FF_VMX_PREEMPT_TIMER);
+
             /* Cause the VMX-preemption timer VM-exit. The VM-exit qualification MBZ. */
             iemVmxVmcsSetExitQual(pVCpu, 0);
-            VMCPU_FF_CLEAR(pVCpu, VMCPU_FF_VMX_PREEMPT_TIMER);
             return iemVmxVmexit(pVCpu, VMX_EXIT_PREEMPT_TIMER);
         }
@@ -4913,5 +4920,4 @@
     PCVMXVVMCS pVmcs = pVCpu->cpum.GstCtx.hwvirt.vmx.CTX_SUFF(pVmcs);
     Assert(pVmcs);
-    Assert(pVmcs->u32ProcCtls2 & VMX_PROC_CTLS2_APIC_REG_VIRT);
 
     /*
