Index: /trunk/src/VBox/VMM/VMMAll/IEMAllCImpl.cpp.h
===================================================================
--- /trunk/src/VBox/VMM/VMMAll/IEMAllCImpl.cpp.h	(revision 74698)
+++ /trunk/src/VBox/VMM/VMMAll/IEMAllCImpl.cpp.h	(revision 74699)
@@ -5327,11 +5327,17 @@
     IEM_SVM_CHECK_READ_CR0_INTERCEPT(pVCpu, 0 /* uExitInfo1 */, 0 /* uExitInfo2 */);
 
+    uint64_t u64GuestCr0 = pVCpu->cpum.GstCtx.cr0;
+#ifdef VBOX_WITH_NESTED_HWVIRT_VMX
+    if (IEM_VMX_IS_NON_ROOT_MODE(pVCpu))
+        u64GuestCr0 = iemVmxMaskCr0CR4(pVCpu, 0 /* iCrReg */, u64GuestCr0);
+#endif
+
     uint16_t u16Value;
     if (IEM_GET_TARGET_CPU(pVCpu) > IEMTARGETCPU_386)
-        u16Value = (uint16_t)pVCpu->cpum.GstCtx.cr0;
+        u16Value = (uint16_t)u64GuestCr0;
     else if (IEM_GET_TARGET_CPU(pVCpu) >= IEMTARGETCPU_386)
-        u16Value = (uint16_t)pVCpu->cpum.GstCtx.cr0 | 0xffe0;
+        u16Value = (uint16_t)u64GuestCr0 | 0xffe0;
     else
-        u16Value = (uint16_t)pVCpu->cpum.GstCtx.cr0 | 0xfff0;
+        u16Value = (uint16_t)u64GuestCr0 | 0xfff0;
 
     VBOXSTRICTRC rcStrict = iemMemStoreDataU16(pVCpu, iEffSeg, GCPtrEffDst, u16Value);
