Index: /trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp
===================================================================
--- /trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp	(revision 45518)
+++ /trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp	(revision 45519)
@@ -5749,8 +5749,5 @@
 
     int rc = TRPMQueryTrapAll(pVCpu, &u8Vector, &enmTrpmEvent, &uErrCode, NULL /* puCr2 */);
-    AssertRCReturn(rc, rc);
-    Assert(enmTrpmEvent != TRPM_SOFTWARE_INT);
-
-    rc = TRPMResetTrap(pVCpu);
+    rc    |= TRPMResetTrap(pVCpu);
     AssertRCReturn(rc, rc);
 
@@ -5789,4 +5786,6 @@
     else if (enmTrpmEvent == TRPM_HARDWARE_INT)
         u32IntrInfo |= (VMX_EXIT_INTERRUPTION_INFO_TYPE_EXT_INT << VMX_EXIT_INTERRUPTION_INFO_TYPE_SHIFT);
+    else if (enmTrpmEvent == TRPM_SOFTWARE_INT)
+        u32IntrInfo |= (VMX_EXIT_INTERRUPTION_INFO_TYPE_SW_INT << VMX_EXIT_INTERRUPTION_INFO_TYPE_SHIFT);
     else
         AssertMsgFailed(("Invalid TRPM event type %d\n", enmTrpmEvent));
