diff -urpN --exclude-from=/home/davej/.exclude bk-linus/arch/i386/kernel/traps.c linux-2.5/arch/i386/kernel/traps.c --- bk-linus/arch/i386/kernel/traps.c 2002-11-21 02:09:31.000000000 +0000 +++ linux-2.5/arch/i386/kernel/traps.c 2002-11-21 17:55:03.000000000 +0000 @@ -320,8 +320,12 @@ static inline unsigned long get_cr2(void static void inline do_trap(int trapnr, int signr, char *str, int vm86, struct pt_regs * regs, long error_code, siginfo_t *info) { - if (vm86 && regs->eflags & VM_MASK) - goto vm86_trap; + if (regs->eflags & VM_MASK) { + if (vm86) + goto vm86_trap; + else + goto trap_signal; + } if (!(regs->xcs & 3)) goto kernel_trap;