diff --git a/sys/kern/sys_process.c b/sys/kern/sys_process.c
index 02929610e829..533ba71f51d2 100644
--- a/sys/kern/sys_process.c
+++ b/sys/kern/sys_process.c
@@ -322,7 +322,7 @@ ptrace(curp, uap)
 	case PT_STEP:
 	case PT_CONTINUE:
 	case PT_DETACH:
-		if ((unsigned)uap->data >= NSIG)
+		if ((uap->req != PT_STEP) && ((unsigned)uap->data >= NSIG))
 			return EINVAL;
 
 		PHOLD(p);