Index: /trunk/src/VBox/VMM/VMMR0/HWSVMR0.cpp
===================================================================
--- /trunk/src/VBox/VMM/VMMR0/HWSVMR0.cpp	(revision 9187)
+++ /trunk/src/VBox/VMM/VMMR0/HWSVMR0.cpp	(revision 9188)
@@ -450,5 +450,5 @@
         TRPMEVENT   enmType;
         SVM_EVENT   Event;
-        uint32_t    u32ErrorCode;
+        RTGCUINT    u32ErrorCode;
 
         Event.au64[0] = 0;
Index: /trunk/src/VBox/VMM/VMMR0/HWVMXR0.cpp
===================================================================
--- /trunk/src/VBox/VMM/VMMR0/HWVMXR0.cpp	(revision 9187)
+++ /trunk/src/VBox/VMM/VMMR0/HWVMXR0.cpp	(revision 9188)
@@ -512,5 +512,6 @@
         int         rc;
         TRPMEVENT   enmType;
-        RTGCUINTPTR intInfo, errCode;
+        RTGCUINTPTR intInfo;
+        RTGCUINT    errCode;
 
         /* If a new event is pending, then dispatch it now. */
@@ -1921,5 +1922,6 @@
     case VMX_EXIT_HLT:                  /* 12 Guest software attempted to execute HLT. */
         /** Check if external interrupts are pending; if so, don't switch back. */
-        if (VM_FF_ISPENDING(pVM, (VM_FF_INTERRUPT_APIC|VM_FF_INTERRUPT_PIC)))
+        if (    pCtx->eflags.Bits.u1IF
+            &&  VM_FF_ISPENDING(pVM, (VM_FF_INTERRUPT_APIC|VM_FF_INTERRUPT_PIC)))
         {
             pCtx->eip++;    /* skip hlt */
