Index: trunk/src/VBox/Main/include/ConsoleImpl.h
===================================================================
--- trunk/src/VBox/Main/include/ConsoleImpl.h	(revision 44399)
+++ trunk/src/VBox/Main/include/ConsoleImpl.h	(revision 44402)
@@ -387,8 +387,8 @@
         typedef AutoVMCallerBase<taQuiet, true> Base;
     public:
-        SafeVMPtrBase(Console *aThat) : Base(aThat), mpVM(NULL), mpUVM(NULL)
+        SafeVMPtrBase(Console *aThat) : Base(aThat), mpUVM(NULL)
         {
             if (SUCCEEDED(Base::mRC))
-                Base::mRC = aThat->safeVMPtrRetainer(&mpVM, &mpUVM, taQuiet);
+                Base::mRC = aThat->safeVMPtrRetainer(&mpUVM, taQuiet);
         }
         ~SafeVMPtrBase()
@@ -397,11 +397,5 @@
                 release();
         }
-#if 1 /* to be removed... */
-        /** Smart SaveVMPtr to PVM cast operator */
-        operator PVM() const { return mpVM; }
-#endif
-        /** Direct PVM access for printf()-like functions */
-        PVM raw() const { return mpVM; }
-        /** Direct PUVM access for printf()-like functions */
+        /** Direct PUVM access. */
         PUVM rawUVM() const { return mpUVM; }
         /** Release the handles. */
@@ -409,10 +403,9 @@
         {
             AssertReturnVoid(SUCCEEDED(Base::mRC));
-            Base::mThat->safeVMPtrReleaser(&mpVM, &mpUVM);
+            Base::mThat->safeVMPtrReleaser(&mpUVM);
             Base::releaseCaller();
         }
 
     private:
-        PVM     mpVM;
         PUVM    mpUVM;
         DECLARE_CLS_COPY_CTOR_ASSIGN_NOOP(SafeVMPtrBase)
@@ -422,5 +415,5 @@
 
     /**
-     *  Helper class that safely manages the Console::mpVM pointer
+     *  Helper class that safely manages the Console::mpUVM pointer
      *  by calling addVMCaller() on construction and releaseVMCaller() on
      *  destruction. Intended for Console children. The usage pattern is:
@@ -494,6 +487,6 @@
     HRESULT addVMCaller(bool aQuiet = false, bool aAllowNullVM = false);
     void    releaseVMCaller();
-    HRESULT safeVMPtrRetainer(PVM *a_ppVM, PUVM *a_ppUVM, bool aQuiet);
-    void    safeVMPtrReleaser(PVM *a_ppVM, PUVM *a_ppUVM);
+    HRESULT safeVMPtrRetainer(PUVM *a_ppUVM, bool aQuiet);
+    void    safeVMPtrReleaser(PUVM *a_ppUVM);
 
     HRESULT consoleInitReleaseLog(const ComPtr<IMachine> aMachine);
@@ -744,5 +737,5 @@
     /** The user mode VM handle. */
     PUVM mpUVM;
-    /** Holds the number of "readonly" mpVM callers (users) */
+    /** Holds the number of "readonly" mpVM/mpUVM callers (users) */
     uint32_t mVMCallers;
     /** Semaphore posted when the number of mpVM callers drops to zero */
Index: trunk/src/VBox/Main/src-client/ConsoleImpl.cpp
===================================================================
--- trunk/src/VBox/Main/src-client/ConsoleImpl.cpp	(revision 44399)
+++ trunk/src/VBox/Main/src-client/ConsoleImpl.cpp	(revision 44402)
@@ -156,5 +156,4 @@
           mProgress(aProgress),
           mServerProgress(aServerProgress),
-          mpVM(NULL),
           mpUVM(NULL),
           mRC(E_FAIL),
@@ -169,8 +168,5 @@
             mpSafeVMPtr = new Console::SafeVMPtr(aConsole);
             if (mpSafeVMPtr->isOk())
-            {
-                mpVM = mpSafeVMPtr->raw();
                 mpUVM = mpSafeVMPtr->rawUVM();
-            }
             else
                 mRC = mpSafeVMPtr->rc();
@@ -201,5 +197,4 @@
     Utf8Str                     mErrorMsg;
     const ComPtr<IProgress>     mServerProgress;
-    PVM                         mpVM;
     PUVM                        mpUVM;
 
@@ -2547,5 +2542,5 @@
 
 #ifdef VBOX_WITH_EXTPACK
-    int vrc = mptrExtPackManager->callAllVmPowerOnHooks(this, ptrVM.raw()); /** @todo called a few times too many... */
+    int vrc = mptrExtPackManager->callAllVmPowerOnHooks(this, VMR3GetVM(ptrVM.rawUVM())); /** @todo called a few times too many... */
 #else
     int vrc = VINF_SUCCESS;
@@ -6176,7 +6171,6 @@
 
 
-HRESULT Console::safeVMPtrRetainer(PVM *a_ppVM, PUVM *a_ppUVM, bool a_Quiet)
-{
-    *a_ppVM  = NULL;
+HRESULT Console::safeVMPtrRetainer(PUVM *a_ppUVM, bool a_Quiet)
+{
     *a_ppUVM = NULL;
 
@@ -6190,11 +6184,11 @@
     if (mVMDestroying) /* powerDown() is waiting for all callers to finish */
         return a_Quiet
-            ? E_ACCESSDENIED
-            : setError(E_ACCESSDENIED, tr("The virtual machine is being powered down"));
+             ? E_ACCESSDENIED
+             : setError(E_ACCESSDENIED, tr("The virtual machine is being powered down"));
     PUVM pUVM = mpUVM;
     if (!pUVM)
         return a_Quiet
-            ? E_ACCESSDENIED
-            : setError(E_ACCESSDENIED, tr("The virtual machine is powered off"));
+             ? E_ACCESSDENIED
+             : setError(E_ACCESSDENIED, tr("The virtual machine is powered off"));
 
     /*
@@ -6207,24 +6201,13 @@
             : setError(E_ACCESSDENIED, tr("The virtual machine is powered off"));
 
-    PVM pVM = VMR3GetVM(pUVM);
-    if (!pVM)
-    {
-        VMR3ReleaseUVM(pUVM);
-        return a_Quiet
-            ? E_ACCESSDENIED
-            : setError(E_ACCESSDENIED, tr("The virtual machine is powered off"));
-    }
-
     /* done */
-    *a_ppVM  = pVM;
     *a_ppUVM = pUVM;
     return S_OK;
 }
 
-void Console::safeVMPtrReleaser(PVM *a_ppVM, PUVM *a_ppUVM)
-{
-    if (*a_ppVM && *a_ppUVM)
+void Console::safeVMPtrReleaser(PUVM *a_ppUVM)
+{
+    if (*a_ppUVM)
         VMR3ReleaseUVM(*a_ppUVM);
-    *a_ppVM  = NULL;
     *a_ppUVM = NULL;
 }
Index: trunk/src/VBox/Main/src-client/DisplayImpl.cpp
===================================================================
--- trunk/src/VBox/Main/src-client/DisplayImpl.cpp	(revision 44399)
+++ trunk/src/VBox/Main/src-client/DisplayImpl.cpp	(revision 44402)
@@ -2991,5 +2991,5 @@
         return;
 
-#if DEBUG
+#ifdef VBOX_STRICT
     /*
      *  Sanity check. Note that this method may be called on EMT after Console
@@ -3000,7 +3000,10 @@
      *  time-critical method.
      */
-    Console::SafeVMPtrQuiet ptrVM (mParent);
+    Console::SafeVMPtrQuiet ptrVM(mParent);
     if (ptrVM.isOk())
-        Assert(VM_IS_EMT(ptrVM.raw()));
+    {
+        PVM pVM = VMR3GetVM(ptrVM.rawUVM());
+        Assert(VM_IS_EMT(pVM));
+    }
 #endif
 
