Index: /trunk/src/VBox/VMM/VMMAll/TMAllCpu.cpp
===================================================================
--- /trunk/src/VBox/VMM/VMMAll/TMAllCpu.cpp	(revision 51958)
+++ /trunk/src/VBox/VMM/VMMAll/TMAllCpu.cpp	(revision 51959)
@@ -80,4 +80,5 @@
 }
 
+
 /**
  * Resumes the CPU timestamp counter ticking.
@@ -144,4 +145,5 @@
 }
 
+
 /**
  * Pauses the CPU timestamp counter ticking.
@@ -172,4 +174,5 @@
     return VERR_TM_TSC_ALREADY_PAUSED;
 }
+
 
 /**
Index: /trunk/src/VBox/VMM/VMMR3/TM.cpp
===================================================================
--- /trunk/src/VBox/VMM/VMMR3/TM.cpp	(revision 51958)
+++ /trunk/src/VBox/VMM/VMMR3/TM.cpp	(revision 51959)
@@ -1224,5 +1224,4 @@
      */
     pVM->tm.s.cVirtualTicking = 0;
-    pVM->tm.s.cTSCsTicking    = 0;
     /* the virtual clock. */
     uint64_t u64Hz;
@@ -1266,4 +1265,7 @@
 
     /* the cpu tick clock. */
+    pVM->tm.s.cTSCsTicking = 0;
+    pVM->tm.s.offTSCPause = 0;
+    pVM->tm.s.u64LastPausedTSC = 0;
     for (VMCPUID i = 0; i < pVM->cCpus; i++)
     {
@@ -1272,4 +1274,6 @@
         pVCpu->tm.s.fTSCTicking = false;
         SSMR3GetU64(pSSM, &pVCpu->tm.s.u64TSC);
+        if (pVM->tm.s.u64LastPausedTSC < pVCpu->tm.s.u64TSC)
+            pVM->tm.s.u64LastPausedTSC = pVCpu->tm.s.u64TSC;
 
         if (pVM->tm.s.fTSCUseRealTSC)
Index: /trunk/src/VBox/VMM/include/TMInternal.h
===================================================================
--- /trunk/src/VBox/VMM/include/TMInternal.h	(revision 51958)
+++ /trunk/src/VBox/VMM/include/TMInternal.h	(revision 51959)
@@ -354,8 +354,15 @@
     /** The ID of the virtual CPU that normally runs the timers. */
     VMCPUID                     idTimerCpu;
+
     /** The number of CPU clock ticks per second (TMCLOCK_TSC).
      * Config variable: TSCTicksPerSecond (64-bit unsigned int)
      * The config variable implies fTSCVirtualized = true and fTSCUseRealTSC = false. */
     uint64_t                    cTSCTicksPerSecond;
+    /** The TSC difference introduced by pausing the VM. */
+    uint64_t                    offTSCPause;
+    /** The TSC value when the last TSC was paused. */
+    uint64_t                    u64LastPausedTSC;
+    /** CPU TSCs ticking indicator (one for each VCPU). */
+    uint32_t volatile           cTSCsTicking;
 
     /** Virtual time ticking enabled indicator (counter for each VCPU). (TMCLOCK_VIRTUAL) */
@@ -373,13 +380,4 @@
      * i.e. since u64VirtualWarpDriveStart. */
     uint32_t                    u32VirtualWarpDrivePercentage;
-
-    /** CPU TSCs ticking indicator (one for each VCPU). */
-    uint32_t volatile           cTSCsTicking;
-
-    /** The TSC difference introduced by pausing the VM. */
-    uint64_t                    offTSCPause;
-
-    /** The TSC value when the last TSC was paused. */
-    uint64_t                    u64LastPausedTSC;
 
     /** The offset of the virtual clock relative to it's timesource.
