Index: /trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp
===================================================================
--- /trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp	(revision 78240)
+++ /trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp	(revision 78241)
@@ -4805,5 +4805,5 @@
 
             /* Commit the CR0 and related fields to the guest VMCS. */
-            int rc = VMXWriteVmcsGstN(VMX_VMCS_GUEST_CR0, u64GuestCr0);
+            int rc = VMXWriteVmcs32(VMX_VMCS_GUEST_CR0, u64GuestCr0);   /** @todo Fix to 64-bit when we drop 32-bit. */
             rc    |= VMXWriteVmcsHstN(VMX_VMCS_CTRL_CR0_READ_SHADOW, u64ShadowCr0);
             if (uProcCtls != pVmcsInfo->u32ProcCtls)
@@ -4834,5 +4834,5 @@
 
             /* Commit the CR0 and CR0 read shadow to the nested-guest VMCS. */
-            int rc = VMXWriteVmcsGstN(VMX_VMCS_GUEST_CR0,            u64GuestCr0);
+            int rc = VMXWriteVmcs32(VMX_VMCS_GUEST_CR0, u64GuestCr0);   /** @todo NSTVMX: Fix to 64-bit when we drop 32-bit. */
             rc    |= VMXWriteVmcsHstN(VMX_VMCS_CTRL_CR0_READ_SHADOW, u64ShadowCr0);
             AssertRCReturn(rc, rc);
@@ -5062,5 +5062,5 @@
 
         /* Commit the CR4 and CR4 read shadow to the guest VMCS. */
-        rc  = VMXWriteVmcsGstN(VMX_VMCS_GUEST_CR4, u64GuestCr4);
+        rc  = VMXWriteVmcs32(VMX_VMCS_GUEST_CR4, u64GuestCr4);  /** @todo Fix to 64-bit when we drop 32-bit. */
         rc |= VMXWriteVmcsHstN(VMX_VMCS_CTRL_CR4_READ_SHADOW, u64ShadowCr4);
         AssertRCReturn(rc, rc);
@@ -6440,4 +6440,5 @@
         {
             AssertMsgFailed(("VMXWriteVmcs64Ex: Invalid field %#RX32 (pVCpu=%p u64Val=%#RX64)\n", idxField, pVCpu, u64Val));
+            pVCpu->hm.s.u32HMError = idxField;
             rc = VERR_INVALID_PARAMETER;
             break;
