Index: kernel/arch/mips32/Makefile.inc
===================================================================
--- kernel/arch/mips32/Makefile.inc	(revision 14febed99d983f8eb0e743677bbec7ee7df1e157)
+++ kernel/arch/mips32/Makefile.inc	(revision 7633928c3dd5a213d06a4fd3739f1ae2e2c661d6)
@@ -69,4 +69,9 @@
 	arch/$(KARCH)/src/fpu_context.c \
 	arch/$(KARCH)/src/ddi/ddi.c \
-	arch/$(KARCH)/src/smp/dorder.c \
 	arch/$(KARCH)/src/smp/smp.c
+
+ifeq ($(MACHINE),msim)
+	ARCH_SOURCES += \
+		arch/$(KARCH)/src/smp/dorder.c
+endif
+
Index: kernel/arch/mips32/src/interrupt.c
===================================================================
--- kernel/arch/mips32/src/interrupt.c	(revision 14febed99d983f8eb0e743677bbec7ee7df1e157)
+++ kernel/arch/mips32/src/interrupt.c	(revision 7633928c3dd5a213d06a4fd3739f1ae2e2c661d6)
@@ -45,9 +45,15 @@
 #define IRQ_COUNT   8
 #define TIMER_IRQ   7
+
+#ifdef MACHINE_msim
 #define DORDER_IRQ  5
+#endif
 
 function virtual_timer_fnc = NULL;
 static irq_t timer_irq;
+
+#ifdef MACHINE_msim
 static irq_t dorder_irq;
+#endif
 
 // TODO: This is SMP unsafe!!!
@@ -151,4 +157,5 @@
 }
 
+#ifdef MACHINE_msim
 static irq_ownership_t dorder_claim(irq_t *irq)
 {
@@ -160,4 +167,5 @@
 	dorder_ipi_ack(1 << dorder_cpuid());
 }
+#endif
 
 /* Initialize basic tables for exception dispatching */
@@ -176,4 +184,5 @@
 	cp0_unmask_int(TIMER_IRQ);
 	
+#ifdef MACHINE_msim
 	irq_initialize(&dorder_irq);
 	dorder_irq.devno = device_assign_devno();
@@ -184,4 +193,5 @@
 	
 	cp0_unmask_int(DORDER_IRQ);
+#endif
 }
 
