diff --git a/src/slurmd/req.c b/src/slurmd/req.c
index e01507753baf7c1f79fb40f9bdd3f90b461f22c1..f4f150edd4545a4e1b82353cfb373060a6b0adbf 100644
--- a/src/slurmd/req.c
+++ b/src/slurmd/req.c
@@ -691,7 +691,8 @@ _rpc_kill_tasks(slurm_msg_t *msg, slurm_addr *cli_addr)
 		if (kill(-step->sid, req->signal) < 0)
 			rc = errno;
 
-		if (kill (-step->task_list->pid, req->signal) < 0)
+		if (step->task_list
+		&& (kill (-step->task_list->pid, req->signal) < 0))
 			rc = errno;
  
 		if (rc == SLURM_SUCCESS)
@@ -963,7 +964,8 @@ _kill_all_active_steps(uint32_t jobid, int sig, bool batch)
 			if (kill(-s->sid, sig) < 0)
 				error("kill jid %d sid %d: %m",
 				      s->jobid, s->sid);
-			if (kill(-s->task_list->pid, sig) < 0)
+			if (s->task_list
+			&& (kill(-s->task_list->pid, sig) < 0))
 				error("kill jid %d pgrp %d: %m",
 					s->jobid, s->task_list->pid);
 		}