diff -Nur linux.old/arch/i386/kernel/traps.c linux.new/arch/i386/kernel/traps.c --- linux.old/arch/i386/kernel/traps.c Sun Jan 5 11:26:56 2003 +++ linux.new/arch/i386/kernel/traps.c Sun Jan 5 11:28:20 2003 @@ -320,8 +320,12 @@ static inline void 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;