Index: /trunk/src/VBox/VMM/VMMRC/SELMRC.cpp
===================================================================
--- /trunk/src/VBox/VMM/VMMRC/SELMRC.cpp	(revision 49913)
+++ /trunk/src/VBox/VMM/VMMRC/SELMRC.cpp	(revision 49914)
@@ -149,5 +149,6 @@
                     paSReg[iSReg].fFlags |= CPUMSELREG_FLAGS_STALE;
                     VMCPU_FF_SET(pVCpu, VMCPU_FF_TO_R3); /* paranoia */
-                    rcStrict = VINF_EM_RESCHEDULE_REM;
+                    /* rcStrict = VINF_EM_RESCHEDULE_REM; - bad idea if we're in a patch. */
+                    rcStrict = VINF_EM_RAW_EMULATE_INSTR_GDT_FAULT;
                 }
                 else if (paSReg[iSReg].fFlags & CPUMSELREG_FLAGS_STALE)
@@ -288,4 +289,7 @@
                 if (rc2 == VINF_SUCCESS || rc2 == VINF_EM_RESCHEDULE_REM)
                 {
+                    /* VINF_EM_RESCHEDULE_REM - bad idea if we're in a patch. */
+                    if (rc2 == VINF_EM_RESCHEDULE_REM)
+                        rc = VINF_EM_RAW_EMULATE_INSTR_GDT_FAULT;
                     STAM_COUNTER_INC(&pVM->selm.s.StatRCWriteGuestGDTHandled);
                     return rc;
Index: /trunk/src/VBox/VMM/include/SELMInline.h
===================================================================
--- /trunk/src/VBox/VMM/include/SELMInline.h	(revision 49913)
+++ /trunk/src/VBox/VMM/include/SELMInline.h	(revision 49914)
@@ -253,5 +253,5 @@
     if (pSReg->u64Base != X86DESC_BASE(pShwDesc))
     {
-        Log(("selmIsSRegStale32: base changed (%#llx -> %#llx)\n", pSReg->u64Base, X86DESC_BASE(pShwDesc)));
+        Log(("selmIsSRegStale32: base changed (%#llx -> %#x)\n", pSReg->u64Base, X86DESC_BASE(pShwDesc)));
         return true;
     }
