Index: /trunk/src/VBox/VMM/VMMR0/HMR0.cpp
===================================================================
--- /trunk/src/VBox/VMM/VMMR0/HMR0.cpp	(revision 50799)
+++ /trunk/src/VBox/VMM/VMMR0/HMR0.cpp	(revision 50800)
@@ -614,5 +614,8 @@
     g_HvmR0.EnableAllCpusOnce = s_OnceInit;
     for (unsigned i = 0; i < RT_ELEMENTS(g_HvmR0.aCpuInfo); i++)
+    {
         g_HvmR0.aCpuInfo[i].hMemObj = NIL_RTR0MEMOBJ;
+        g_HvmR0.aCpuInfo[i].idCpu   = NIL_RTCPUID;
+    }
 
     /* Fill in all callbacks with placeholders. */
@@ -1101,4 +1104,5 @@
 
         pCpu->fConfigured = false;
+        pCpu->idCpu = NIL_RTCPUID;
     }
     else
@@ -1390,4 +1394,6 @@
     /* Reload host-state (back from ring-3/migrated CPUs) and shared guest/host bits. */
     HMCPU_CF_SET(pVCpu, HM_CHANGED_HOST_CONTEXT | HM_CHANGED_HOST_GUEST_SHARED_STATE);
+
+    Assert(pCpu->idCpu == idCpu && pCpu->idCpu != NIL_RTCPUID);
     pVCpu->hm.s.idEnteredCpu = idCpu;
     return rc;
@@ -1467,4 +1473,5 @@
         AssertRCReturn(rc, rc);
         Assert(!pCpu->fConfigured);
+        Assert(pCpu->idCpu == NIL_RTCPUID);
 
         /* For obtaining a non-zero ASID/VPID on next re-entry. */
