Index: /trunk/src/VBox/VMM/VMMR0/HWVMXR0.cpp
===================================================================
--- /trunk/src/VBox/VMM/VMMR0/HWVMXR0.cpp	(revision 41833)
+++ /trunk/src/VBox/VMM/VMMR0/HWVMXR0.cpp	(revision 41834)
@@ -162,4 +162,9 @@
     else
         pCpu->fFlushASIDBeforeUse = true;
+
+    /*
+     * Ensure each VCPU scheduled on this CPU gets a new VPID on resume. See @bugref{6255}.
+     */
+    pCpu->cTLBFlushes++;
 
     return VINF_SUCCESS;
@@ -2448,5 +2453,6 @@
     else
     {
-        Assert(pVCpu->hwaccm.s.uCurrentASID && pCpu->uCurrentASID);
+        AssertMsg(pVCpu->hwaccm.s.uCurrentASID && pCpu->uCurrentASID, ("hwaccm uCurrentASID=%lu cpu uCurrentASID=%lu\n",
+                                                                       pVCpu->hwaccm.s.uCurrentASID, pCpu->uCurrentASID));
 
         /** @todo We never set VMCPU_FF_TLB_SHOOTDOWN anywhere so this path should
@@ -2525,5 +2531,6 @@
         pVCpu->hwaccm.s.fForceTLBFlush = true;
 
-    pVCpu->hwaccm.s.idLastCpu = pCpu->idCpu;
+    pVCpu->hwaccm.s.idLastCpu   = pCpu->idCpu;
+    pVCpu->hwaccm.s.cTLBFlushes = pCpu->cTLBFlushes;
 
     if (pVCpu->hwaccm.s.fForceTLBFlush)
