Index: /trunk/include/VBox/vmm/csam.h
===================================================================
--- /trunk/include/VBox/vmm/csam.h	(revision 45527)
+++ /trunk/include/VBox/vmm/csam.h	(revision 45528)
@@ -29,4 +29,5 @@
 #include <VBox/types.h>
 
+#if defined(VBOX_WITH_RAW_MODE) || defined(DOXYGEN_RUNNING)
 
 /** @defgroup grp_csam      The Code Scanning and Analysis API
@@ -103,4 +104,6 @@
 RT_C_DECLS_END
 
+#endif /* VBOX_WITH_RAW_MODE */
+
 #endif
 
Index: /trunk/include/VBox/vmm/patm.h
===================================================================
--- /trunk/include/VBox/vmm/patm.h	(revision 45527)
+++ /trunk/include/VBox/vmm/patm.h	(revision 45528)
@@ -30,4 +30,5 @@
 #include <VBox/dis.h>
 
+#if defined(VBOX_WITH_RAW_MODE) || defined(DOXYGEN_RUNNING)
 
 RT_C_DECLS_BEGIN
@@ -216,4 +217,5 @@
 RT_C_DECLS_END
 
-
-#endif
+#endif /* VBOX_WITH_RAW_MODE */
+
+#endif
Index: /trunk/include/VBox/vmm/trpm.h
===================================================================
--- /trunk/include/VBox/vmm/trpm.h	(revision 45527)
+++ /trunk/include/VBox/vmm/trpm.h	(revision 45528)
@@ -97,14 +97,16 @@
 VMMR3DECL(void)     TRPMR3ResetCpu(PVMCPU pVCpu);
 VMMR3DECL(void)     TRPMR3Reset(PVM pVM);
+VMMR3DECL(int)      TRPMR3Term(PVM pVM);
+VMMR3DECL(void)     TRPMR3DisableMonitoring(PVM pVM);
+VMMR3DECL(int)      TRPMR3SyncIDT(PVM pVM, PVMCPU pVCpu);
+VMMR3DECL(int)      TRPMR3InjectEvent(PVM pVM, PVMCPU pVCpu, TRPMEVENT enmEvent);
+# ifdef VBOX_WITH_RAW_MODE
 VMMR3_INT_DECL(int) TRPMR3GetImportRC(PVM pVM, const char *pszSymbol, PRTRCPTR pRCPtrValue);
-VMMR3DECL(int)      TRPMR3Term(PVM pVM);
+VMMR3DECL(bool)     TRPMR3IsGateHandler(PVM pVM, RTRCPTR GCPtr);
+VMMR3DECL(uint32_t) TRPMR3QueryGateByHandler(PVM pVM, RTRCPTR GCPtr);
 VMMR3DECL(int)      TRPMR3EnableGuestTrapHandler(PVM pVM, unsigned iTrap);
 VMMR3DECL(int)      TRPMR3SetGuestTrapHandler(PVM pVM, unsigned iTrap, RTRCPTR pHandler);
 VMMR3DECL(RTRCPTR)  TRPMR3GetGuestTrapHandler(PVM pVM, unsigned iTrap);
-VMMR3DECL(void)     TRPMR3DisableMonitoring(PVM pVM);
-VMMR3DECL(int)      TRPMR3SyncIDT(PVM pVM, PVMCPU pVCpu);
-VMMR3DECL(bool)     TRPMR3IsGateHandler(PVM pVM, RTRCPTR GCPtr);
-VMMR3DECL(uint32_t) TRPMR3QueryGateByHandler(PVM pVM, RTRCPTR GCPtr);
-VMMR3DECL(int)      TRPMR3InjectEvent(PVM pVM, PVMCPU pVCpu, TRPMEVENT enmEvent);
+# endif
 /** @} */
 #endif
Index: /trunk/src/VBox/Main/src-client/MachineDebuggerImpl.cpp
===================================================================
--- /trunk/src/VBox/Main/src-client/MachineDebuggerImpl.cpp	(revision 45527)
+++ /trunk/src/VBox/Main/src-client/MachineDebuggerImpl.cpp	(revision 45528)
@@ -295,4 +295,5 @@
         return autoCaller.rc();
 
+#ifdef VBOX_WITH_RAW_MODE
     AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS);
 
@@ -301,4 +302,5 @@
         *aEnabled = PATMR3IsEnabled (ptrVM.rawUVM());
     else
+#endif
         *aEnabled = false;
 
@@ -319,4 +321,5 @@
     if (FAILED(autoCaller.rc())) return autoCaller.rc();
 
+#ifdef VBOX_WITH_RAW_MODE
     AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS);
 
@@ -336,4 +339,8 @@
         return setError(VBOX_E_VM_ERROR, tr("PATMR3AllowPatching returned %Rrc"), vrc);
 
+#else  /* !VBOX_WITH_RAW_MODE */
+    if (aEnable)
+        return setError(VBOX_E_VM_ERROR, tr("PATM not present"), VERR_NOT_SUPPORTED);
+#endif /* !VBOX_WITH_RAW_MODE */
     return S_OK;
 }
@@ -352,4 +359,5 @@
     if (FAILED(autoCaller.rc())) return autoCaller.rc();
 
+#ifdef VBOX_WITH_RAW_MODE
     AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS);
 
@@ -359,4 +367,5 @@
         *aEnabled = CSAMR3IsEnabled(ptrVM.rawUVM());
     else
+#endif /* VBOX_WITH_RAW_MODE */
         *aEnabled = false;
 
@@ -377,4 +386,5 @@
     if (FAILED(autoCaller.rc())) return autoCaller.rc();
 
+#ifdef VBOX_WITH_RAW_MODE
     AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS);
 
@@ -394,4 +404,8 @@
         return setError(VBOX_E_VM_ERROR, tr("CSAMR3SetScanningEnabled returned %Rrc"), vrc);
 
+#else  /* !VBOX_WITH_RAW_MODE */
+    if (aEnable)
+        return setError(VBOX_E_VM_ERROR, tr("CASM not present"), VERR_NOT_SUPPORTED);
+#endif /* !VBOX_WITH_RAW_MODE */
     return S_OK;
 }
Index: /trunk/src/VBox/VMM/Makefile.kmk
===================================================================
--- /trunk/src/VBox/VMM/Makefile.kmk	(revision 45527)
+++ /trunk/src/VBox/VMM/Makefile.kmk	(revision 45528)
@@ -105,5 +105,5 @@
 VBoxVMM_INCS     = \
 	include \
-	PATM
+	$(if-expr defined(VBOX_WITH_RAW_MODE),PATM,)
 VBoxVMM_ASINCS   = .
 
@@ -171,4 +171,5 @@
 	VMMR3/VMMTests.cpp \
 	VMMR3/HM.cpp \
+	$(if-expr defined(VBOX_WITH_RAW_MODE), \
 	VMMR3/CSAM.cpp \
 	VMMR3/PATM.cpp \
@@ -177,4 +178,5 @@
 	VMMR3/PATMA.asm \
 	VMMR3/PATMSSM.cpp \
+       ,) \
 	VMMAll/CPUMAllRegs.cpp \
 	VMMAll/CPUMStack.cpp \
@@ -212,6 +214,8 @@
 	VMMAll/VMMAll.cpp \
 	VMMAll/VMMAllA.asm \
+	$(if-expr defined(VBOX_WITH_RAW_MODE), \
 	VMMAll/CSAMAll.cpp \
-	VMMAll/PATMAll.cpp
+	VMMAll/PATMAll.cpp \
+	,)
 ifdef VBOX_WITH_VUSB
  VBoxVMM_SOURCES += VMMR3/PDMUsb.cpp
@@ -375,5 +379,5 @@
  	include \
  	VMMRC \
- 	PATM
+ 	$(if-expr defined(VBOX_WITH_RAW_MODE),PATM,)
 
  VMMRC_LIBS      = \
@@ -404,6 +408,8 @@
  	VMMRC/VMMRCA.asm \
  	VMMRC/HMRCA.asm \
- 	VMMRC/CSAMRC.cpp \
+ 	$(if-expr defined(VBOX_WITH_RAW_MODE), \
+	VMMRC/CSAMRC.cpp \
  	VMMRC/PATMRC.cpp \
+	,) \
  	VMMRZ/DBGFRZ.cpp \
  	VMMRZ/PGMRZDynMap.cpp \
@@ -439,6 +445,8 @@
  	VMMAll/VMMAll.cpp \
  	VMMAll/VMMAllA.asm \
- 	VMMAll/CSAMAll.cpp \
- 	VMMAll/PATMAll.cpp
+ 	$(if-expr defined(VBOX_WITH_RAW_MODE),
+	VMMAll/CSAMAll.cpp \
+ 	VMMAll/PATMAll.cpp \
+       ,)
  ifeq ($(VBOX_LDR_FMT32),pe)
   VMMRC_SOURCES += VMMRC/VMMRC.def
@@ -495,5 +503,5 @@
  VMMR0_INCS      = \
  	include \
- 	PATM
+ 	$(if-expr defined(VBOX_WITH_RAW_MODE),PATM,)
 
  VMMR0_SOURCES   = \
Index: /trunk/src/VBox/VMM/VMMAll/EMAll.cpp
===================================================================
--- /trunk/src/VBox/VMM/VMMAll/EMAll.cpp	(revision 45527)
+++ /trunk/src/VBox/VMM/VMMAll/EMAll.cpp	(revision 45528)
@@ -334,5 +334,5 @@
         cbToRead = cbMinRead;
 
-#if defined(IN_RC) || defined(IN_RING3)
+#if defined(VBOX_WITH_RAW_MODE) && (defined(IN_RC) || defined(IN_RING3))
     /*
      * We might be called upon to interpret an instruction in a patch.
Index: /trunk/src/VBox/VMM/VMMAll/PGMAll.cpp
===================================================================
--- /trunk/src/VBox/VMM/VMMAll/PGMAll.cpp	(revision 45527)
+++ /trunk/src/VBox/VMM/VMMAll/PGMAll.cpp	(revision 45528)
@@ -776,4 +776,5 @@
     }
 
+# ifdef VBOX_WITH_RAW_MODE
     /*
      * Inform CSAM about the flush
@@ -783,4 +784,5 @@
      */
     CSAMR3FlushPage(pVM, GCPtrPage);
+# endif
 #endif /* IN_RING3 */
 
Index: /trunk/src/VBox/VMM/VMMAll/TRPMAll.cpp
===================================================================
--- /trunk/src/VBox/VMM/VMMAll/TRPMAll.cpp	(revision 45527)
+++ /trunk/src/VBox/VMM/VMMAll/TRPMAll.cpp	(revision 45528)
@@ -847,4 +847,5 @@
 
 
+#ifdef VBOX_WITH_RAW_MODE
 /**
  * Clear guest trap/interrupt gate handler
@@ -866,12 +867,13 @@
 
     if (ASMBitTest(&pVM->trpm.s.au32IdtPatched[0], iTrap))
-#ifdef IN_RING3
+# ifdef IN_RING3
         trpmR3ClearPassThroughHandler(pVM, iTrap);
-#else
+# else
         AssertFailed();
-#endif
+# endif
 
     pVM->trpm.s.aGuestTrapHandler[iTrap] = TRPM_INVALID_HANDLER;
     return VINF_SUCCESS;
 }
-
+#endif /* VBOX_WITH_RAW_MODE */
+
Index: /trunk/src/VBox/VMM/VMMR3/CPUM.cpp
===================================================================
--- /trunk/src/VBox/VMM/VMMR3/CPUM.cpp	(revision 45527)
+++ /trunk/src/VBox/VMM/VMMR3/CPUM.cpp	(revision 45528)
@@ -4170,4 +4170,5 @@
 }
 
+#ifdef VBOX_WITH_RAW_MODE
 
 /**
@@ -4314,5 +4315,5 @@
         if (!pCtxCore->eflags.Bits.u1VM)
         {
-#ifdef VBOX_WITH_RAW_RING1
+# ifdef VBOX_WITH_RAW_RING1
             if (    EMIsRawRing1Enabled(pVM)
                 &&  (pCtxCore->ss.Sel & X86_SEL_RPL) == 2)
@@ -4338,5 +4339,5 @@
             else
             {
-#endif
+# endif
                 /** @todo See what happens if we remove this. */
                 if ((pCtxCore->ds.Sel & X86_SEL_RPL) == 1)
@@ -4348,7 +4349,7 @@
                 if ((pCtxCore->gs.Sel & X86_SEL_RPL) == 1)
                     pCtxCore->gs.Sel &= ~X86_SEL_RPL;
-#ifdef VBOX_WITH_RAW_RING1
+# ifdef VBOX_WITH_RAW_RING1
             }
-#endif
+# endif
         }
     }
@@ -4356,4 +4357,6 @@
     return rc;
 }
+
+#endif /* VBOX_WITH_RAW_MODE */
 
 
Index: /trunk/src/VBox/VMM/VMMR3/EM.cpp
===================================================================
--- /trunk/src/VBox/VMM/VMMR3/EM.cpp	(revision 45527)
+++ /trunk/src/VBox/VMM/VMMR3/EM.cpp	(revision 45528)
@@ -163,6 +163,8 @@
 
         pVCpu->em.s.pCtx         = CPUMQueryGuestCtxPtr(pVCpu);
+#ifdef VBOX_WITH_RAW_MODE
         pVCpu->em.s.pPatmGCState = PATMR3QueryGCStateHC(pVM);
         AssertMsg(pVCpu->em.s.pPatmGCState, ("PATMR3QueryGCStateHC failed!\n"));
+#endif
 
         /* Force reset of the time slice. */
@@ -1352,12 +1354,14 @@
         }
 
+# ifdef VBOX_WITH_RAW_MODE
         if (PATMShouldUseRawMode(pVM, (RTGCPTR)pCtx->eip))
         {
             Log2(("raw r0 mode forced: patch code\n"));
-# ifdef VBOX_WITH_SAFE_STR
+#  ifdef VBOX_WITH_SAFE_STR
             Assert(pCtx->tr.Sel);
-# endif
+#  endif
             return EMSTATE_RAW;
         }
+# endif /* VBOX_WITH_RAW_MODE */
 
 # if !defined(VBOX_ALLOW_IF0) && !defined(VBOX_RUN_INTERRUPT_GATE_HANDLERS)
@@ -1471,6 +1475,8 @@
     }
 
+#ifdef VBOX_WITH_RAW_MODE
     if (VMCPU_FF_ISPENDING(pVCpu, VMCPU_FF_CSAM_PENDING_ACTION))
         CSAMR3DoPendingAction(pVM, pVCpu);
+#endif
 
     if (VM_FF_ISPENDING(pVM, VM_FF_PGM_NO_MEMORY))
@@ -1600,6 +1606,8 @@
             Log(("Forced action VMCPU_FF_CSAM_SCAN_PAGE\n"));
 
+#ifdef VBOX_WITH_RAW_MODE
             CSAMR3CheckCodeEx(pVM, CPUMCTX2CORE(pCtx), pCtx->eip);
             VMCPU_FF_CLEAR(pVCpu, VMCPU_FF_CSAM_SCAN_PAGE);
+#endif
         }
 
@@ -1788,5 +1796,9 @@
             &&  (!rc || rc >= VINF_EM_RESCHEDULE_HM)
             &&  !TRPMHasTrap(pVCpu) /* an interrupt could already be scheduled for dispatching in the recompiler. */
+#ifdef VBOX_WITH_RAW_MODE
             &&  PATMAreInterruptsEnabled(pVM)
+#else
+            &&  (pVCpu->em.s.pCtx->eflags.u32 & X86_EFL_IF)
+#endif
             &&  !HMR3IsEventPending(pVCpu))
         {
Index: /trunk/src/VBox/VMM/VMMR3/HM.cpp
===================================================================
--- /trunk/src/VBox/VMM/VMMR3/HM.cpp	(revision 45527)
+++ /trunk/src/VBox/VMM/VMMR3/HM.cpp	(revision 45528)
@@ -724,7 +724,9 @@
 static void hmR3DisableRawMode(PVM pVM)
 {
+#ifdef VBOX_WITH_RAW_MODE
     /* Disable PATM & CSAM. */
     PATMR3AllowPatching(pVM->pUVM, false);
     CSAMDisableScanning(pVM);
+#endif
 
     /* Turn off IDT/LDT/GDT and TSS monitoring and sycing. */
Index: /trunk/src/VBox/VMM/VMMR3/TRPM.cpp
===================================================================
--- /trunk/src/VBox/VMM/VMMR3/TRPM.cpp	(revision 45527)
+++ /trunk/src/VBox/VMM/VMMR3/TRPM.cpp	(revision 45528)
@@ -781,4 +781,5 @@
 
 
+# ifdef VBOX_WITH_RAW_MODE
 /**
  * Resolve a builtin RC symbol.
@@ -813,4 +814,5 @@
     return VINF_SUCCESS;
 }
+#endif /* VBOX_WITH_RAW_MODE */
 
 
@@ -1019,4 +1021,5 @@
     }
 
+#ifdef VBOX_WITH_RAW_MODE
     if (fRawRing0 && CSAMIsEnabled(pVM))
     {
@@ -1030,4 +1033,5 @@
         CSAMR3CheckGates(pVM, 0, 256);
     }
+#endif /* VBOX_WITH_RAW_MODE */
 
     /*
@@ -1064,4 +1068,5 @@
                                              0, trpmR3GuestIDTWriteHandler, "trpmRCGuestIDTWriteHandler", 0, "Guest IDT write access handler");
 
+# ifdef VBOX_WITH_RAW_MODE
             if (rc == VERR_PGM_HANDLER_VIRTUAL_CONFLICT)
             {
@@ -1074,4 +1079,5 @@
                                                  0, trpmR3GuestIDTWriteHandler, "trpmRCGuestIDTWriteHandler", 0, "Guest IDT write access handler");
             }
+# endif /* VBOX_WITH_RAW_MODE */
 
             AssertRCReturn(rc, rc);
@@ -1175,4 +1181,5 @@
 }
 
+#ifdef VBOX_WITH_RAW_MODE
 
 /**
@@ -1484,4 +1491,5 @@
 }
 
+#endif /* VBOX_WITH_RAW_MODE */
 
 /**
@@ -1496,5 +1504,7 @@
 {
     PCPUMCTX pCtx = CPUMQueryGuestCtxPtr(pVCpu);
+#ifdef VBOX_WITH_RAW_MODE
     Assert(!PATMIsPatchGCAddr(pVM, pCtx->eip));
+#endif
     Assert(!VMCPU_FF_ISSET(pVCpu, VMCPU_FF_INHIBIT_INTERRUPTS));
 
Index: /trunk/src/VBox/VMM/VMMR3/VM.cpp
===================================================================
--- /trunk/src/VBox/VMM/VMMR3/VM.cpp	(revision 45527)
+++ /trunk/src/VBox/VMM/VMMR3/VM.cpp	(revision 45528)
@@ -931,4 +931,5 @@
                                         if (RT_SUCCESS(rc))
                                         {
+#ifdef VBOX_WITH_RAW_MODE
                                             rc = CSAMR3Init(pVM);
                                             if (RT_SUCCESS(rc))
@@ -937,4 +938,5 @@
                                                 if (RT_SUCCESS(rc))
                                                 {
+#endif
                                                     rc = IOMR3Init(pVM);
                                                     if (RT_SUCCESS(rc))
@@ -955,6 +957,8 @@
                                                                         if (RT_SUCCESS(rc))
                                                                             rc = MMR3HyperInitFinalize(pVM);
+#ifdef VBOX_WITH_RAW_MODE
                                                                         if (RT_SUCCESS(rc))
                                                                             rc = PATMR3InitFinalize(pVM);
+#endif
                                                                         if (RT_SUCCESS(rc))
                                                                             rc = PGMR3InitFinalize(pVM);
@@ -995,4 +999,5 @@
                                                         AssertRC(rc2);
                                                     }
+#ifdef VBOX_WITH_RAW_MODE
                                                     int rc2 = PATMR3Term(pVM);
                                                     AssertRC(rc2);
@@ -1001,4 +1006,5 @@
                                                 AssertRC(rc2);
                                             }
+#endif
                                             int rc2 = TRPMR3Term(pVM);
                                             AssertRC(rc2);
@@ -1190,6 +1196,8 @@
     SELMR3Relocate(pVM);                /* !hack! fix stack! */
     TRPMR3Relocate(pVM, offDelta);
+#ifdef VBOX_WITH_RAW_MODE
     PATMR3Relocate(pVM);
     CSAMR3Relocate(pVM, offDelta);
+#endif
     IOMR3Relocate(pVM, offDelta);
     EMR3Relocate(pVM);
@@ -2425,8 +2433,10 @@
         rc = IOMR3Term(pVM);
         AssertRC(rc);
+#ifdef VBOX_WITH_RAW_MODE
         rc = CSAMR3Term(pVM);
         AssertRC(rc);
         rc = PATMR3Term(pVM);
         AssertRC(rc);
+#endif
         rc = TRPMR3Term(pVM);
         AssertRC(rc);
@@ -2696,6 +2706,8 @@
     if (pVCpu->idCpu == 0)
     {
+#ifdef VBOX_WITH_RAW_MODE
         PATMR3Reset(pVM);
         CSAMR3Reset(pVM);
+#endif
         PDMR3Reset(pVM);
         PGMR3Reset(pVM);
Index: /trunk/src/VBox/VMM/include/EMInternal.h
===================================================================
--- /trunk/src/VBox/VMM/include/EMInternal.h	(revision 45527)
+++ /trunk/src/VBox/VMM/include/EMInternal.h	(revision 45528)
@@ -347,6 +347,8 @@
     RTGCUINTPTR             GCPtrInhibitInterrupts;
 
+#ifdef VBOX_WITH_RAW_MODE
     /** Pointer to the PATM status structure. (R3 Ptr) */
     R3PTRTYPE(PPATMGCSTATE) pPatmGCState;
+#endif
 
     /** Pointer to the guest CPUM state. (R3 Ptr) */
Index: /trunk/src/VBox/VMM/include/REMInternal.h
===================================================================
--- /trunk/src/VBox/VMM/include/REMInternal.h	(revision 45527)
+++ /trunk/src/VBox/VMM/include/REMInternal.h	(revision 45528)
@@ -235,5 +235,7 @@
 bool    remR3CanExecuteRaw(CPUState *env, RTGCPTR eip, unsigned fFlags, int *piException);
 void    remR3CSAMCheckEIP(CPUState *env, RTGCPTR GCPtrCode);
+# ifdef VBOX_WITH_RAW_MODE
 bool    remR3GetOpcode(CPUState *env, RTGCPTR GCPtrInstr, uint8_t *pu8Byte);
+# endif
 bool    remR3DisasInstr(CPUState *env, int f32BitCode, char *pszPrefix);
 void    remR3FlushPage(CPUState *env, RTGCPTR GCPtr);
Index: /trunk/src/VBox/VMM/testcase/tstVMStructDTrace.cpp
===================================================================
--- /trunk/src/VBox/VMM/testcase/tstVMStructDTrace.cpp	(revision 45527)
+++ /trunk/src/VBox/VMM/testcase/tstVMStructDTrace.cpp	(revision 45528)
@@ -43,12 +43,14 @@
 #include "REMInternal.h"
 #include "HMInternal.h"
-#include "PATMInternal.h"
 #include "VMMInternal.h"
 #include "DBGFInternal.h"
 #include "STAMInternal.h"
-#include "CSAMInternal.h"
 #include "EMInternal.h"
 #include "IEMInternal.h"
 #include "REMInternal.h"
+#ifdef VBOX_WITH_RAW_MODE
+# include "CSAMInternal.h"
+# include "PATMInternal.h"
+#endif
 #include <VBox/vmm/vm.h>
 #include <VBox/param.h>
Index: /trunk/src/VBox/VMM/testcase/tstVMStructSize.cpp
===================================================================
--- /trunk/src/VBox/VMM/testcase/tstVMStructSize.cpp	(revision 45527)
+++ /trunk/src/VBox/VMM/testcase/tstVMStructSize.cpp	(revision 45528)
@@ -42,10 +42,8 @@
 #include "SSMInternal.h"
 #include "HMInternal.h"
-#include "PATMInternal.h"
 #include "VMMInternal.h"
 #include "DBGFInternal.h"
 #include "STAMInternal.h"
 #include "VMInternal.h"
-#include "CSAMInternal.h"
 #include "EMInternal.h"
 #include "IEMInternal.h"
@@ -53,4 +51,8 @@
 #include "../VMMR0/GMMR0Internal.h"
 #include "../VMMR0/GVMMR0Internal.h"
+#ifdef VBOX_WITH_RAW_MODE
+# include "CSAMInternal.h"
+# include "PATMInternal.h"
+#endif
 #include <VBox/vmm/vm.h>
 #include <VBox/vmm/uvm.h>
@@ -214,6 +216,8 @@
     CHECK_PADDING_VM(64, pdm);
     CHECK_PADDING_VM(64, iom);
+#ifdef VBOX_WITH_RAW_MODE
     CHECK_PADDING_VM(64, patm);
     CHECK_PADDING_VM(64, csam);
+#endif
     CHECK_PADDING_VM(64, em);
     /*CHECK_PADDING_VM(64, iem);*/
@@ -380,5 +384,7 @@
     CHECK_PADDING3(EMCPU, u.FatalLongJump, u.achPaddingFatalLongJump);
     CHECK_SIZE_ALIGNMENT(VMMR0JMPBUF, 8);
+#ifdef VBOX_WITH_RAW_MODE
     CHECK_SIZE_ALIGNMENT(PATCHINFO, 8);
+#endif
 #if 0
     PRINT_OFFSET(VM, fForcedActions);
Index: /trunk/src/recompiler/VBoxRecompiler.c
===================================================================
--- /trunk/src/recompiler/VBoxRecompiler.c	(revision 45527)
+++ /trunk/src/recompiler/VBoxRecompiler.c	(revision 45528)
@@ -1657,4 +1657,5 @@
         }
 
+#ifdef VBOX_WITH_RAW_MODE
         if (PATMIsPatchGCAddr(env->pVM, eip))
         {
@@ -1663,4 +1664,5 @@
             return true;
         }
+#endif
 
 #if !defined(VBOX_ALLOW_IF0) && !defined(VBOX_RUN_INTERRUPT_GATE_HANDLERS)
@@ -1741,4 +1743,5 @@
 
 
+#ifdef VBOX_WITH_RAW_MODE
 /**
  * Fetches a code byte.
@@ -1756,4 +1759,5 @@
     return false;
 }
+#endif /* VBOX_WITH_RAW_MODE */
 
 
@@ -2089,5 +2093,7 @@
 void remR3RecordCall(CPUX86State *env)
 {
+#ifdef VBOX_WITH_RAW_MODE
     CSAMR3RecordCallAddress(env->pVM, env->eip);
+#endif
 }
 
Index: /trunk/src/recompiler/target-i386/translate.c
===================================================================
--- /trunk/src/recompiler/target-i386/translate.c	(revision 45527)
+++ /trunk/src/recompiler/target-i386/translate.c	(revision 45528)
@@ -107,5 +107,7 @@
     uint8_t b;
 
+# ifdef VBOX_WITH_RAW_MODE
     if (!remR3GetOpcode(cpu_single_env, pc, &b))
+# endif
         b = ldub_code(pc);
     return b;
