diff -u linux/arch/i386/kernel/ptrace.c linux-mod/arch/i386/kernel/ptrace.c
--- linux/arch/i386/kernel/ptrace.c	2004-12-09 15:24:07.000000000 -0700
+++ linux-mod/arch/i386/kernel/ptrace.c	2004-12-25 16:09:52.000000000 -0700
@@ -142,7 +142,7 @@
 {
 	long eflags;
 
-	set_tsk_thread_flag(child, TIF_SINGLESTEP);
+//	set_tsk_thread_flag(child, TIF_SINGLESTEP);
 	eflags = get_stack_long(child, EFL_OFFSET);
 	put_stack_long(child, EFL_OFFSET, eflags | TRAP_FLAG);
 	child->ptrace |= PT_DTRACE;
@@ -153,7 +153,7 @@
 	if (child->ptrace & PT_DTRACE) {
 		long eflags;
 
-		clear_tsk_thread_flag(child, TIF_SINGLESTEP);
+//		clear_tsk_thread_flag(child, TIF_SINGLESTEP);
 		eflags = get_stack_long(child, EFL_OFFSET);
 		put_stack_long(child, EFL_OFFSET, eflags & ~TRAP_FLAG);
 		child->ptrace &= ~PT_DTRACE;
diff -u linux/arch/i386/kernel/signal.c linux-mod/arch/i386/kernel/signal.c
--- linux/arch/i386/kernel/signal.c	2004-12-09 15:24:07.000000000 -0700
+++ linux-mod/arch/i386/kernel/signal.c	2004-12-25 16:10:10.000000000 -0700
@@ -299,8 +299,8 @@
 	 * don't want debugging to change state.
 	 */
 	eflags = regs->eflags;
-	if (current->ptrace & PT_DTRACE)
-		eflags &= ~TF_MASK;
+//	if (current->ptrace & PT_DTRACE)
+//		eflags &= ~TF_MASK;
 	err |= __put_user(eflags, &sc->eflags);
 	err |= __put_user(regs->esp, &sc->esp_at_signal);
 	err |= __put_user(regs->xss, (unsigned int __user *)&sc->ss);
