diff --git a/src/common/slurm_step_layout.c b/src/common/slurm_step_layout.c
index 8d47506c0b75a1effc017913423d26c1613f0502..ef6ab37df999069e098c7fb54319f5f8a7fe0b23 100644
--- a/src/common/slurm_step_layout.c
+++ b/src/common/slurm_step_layout.c
@@ -388,7 +388,7 @@ extern int slurm_step_layout_destroy(slurm_step_layout_t *step_layout)
 int slurm_step_layout_host_id (slurm_step_layout_t *s, int taskid)
 {
 	int i, j;
-	if (taskid > s->task_cnt - 1)
+	if (!s->tasks || !s->tids || (taskid > s->task_cnt - 1))
 		return SLURM_ERROR;
 	for (i=0; i < s->node_cnt; i++)
 		for (j=0; j<s->tasks[i]; j++)