diff -Nur linux.old/arch/i386/kernel/vm86.c linux.new/arch/i386/kernel/vm86.c
--- linux.old/arch/i386/kernel/vm86.c	Thu Apr  4 13:29:56 2002
+++ linux.new/arch/i386/kernel/vm86.c	Thu Apr  4 13:28:41 2002
@@ -7,7 +7,8 @@
 /*
  *  Bugfixes Copyright 2002 by Manfred Spraul and
  *  Kasper Dupont <kasperd@daimi.au.dk>
- *
+ *  Simplifications Copyright 2002 by Stas Sergeev
+ *  and Kasper Dupont
  */
 
 #include <linux/errno.h>
@@ -602,7 +603,7 @@
 
 #define CHECK_IF_IN_TRAP \
 	if (VMPI.vm86dbg_active && VMPI.vm86dbg_TFpendig) \
-		pushw(ssp,sp,popw(ssp,sp, regs, VM86_SIGSEGV) | TF_MASK, regs, VM86_SIGSEGV);
+		newflags |= TF_MASK;
 #define VM86_FAULT_RETURN \
 	if (VMPI.force_return_for_pic  && (VEFLAGS & (IF_MASK | VIF_MASK))) \
 		return_to_32bit(regs, VM86_PICRETURN); \
