diff --git a/loader/signal.c b/loader/signal.c
index 3c970432dc5a7f3d32a7f2d26a25a63a6285f946..59c0759f5016d26405d8419c0cd4862aa66a15ae 100644
--- a/loader/signal.c
+++ b/loader/signal.c
@@ -245,6 +245,17 @@ static HANDLER_DEF(SIGNAL_fault)
         && VIRTUAL_HandleFault( (LPVOID)CR2_sig(HANDLER_CONTEXT) ))
 	return;
 #endif
+#if defined(TRAP_sig)
+   /* We don't do alignment checks */
+   /* FIXME: if we get SEHs, pass the fault through them first? */
+   if (TRAP_sig(HANDLER_CONTEXT) == 0x11) {
+   	if (EFL_sig(HANDLER_CONTEXT) & 0x00040000) {
+		/* Disable AC flag, return */
+		EFL_sig(HANDLER_CONTEXT) &= ~0x00040000;
+		return;
+	}
+   }
+#endif
 
     if (fnINSTR_EmulateInstruction && 
 	fnINSTR_EmulateInstruction( HANDLER_CONTEXT )