diff --git a/src/slurmd/shm.c b/src/slurmd/shm.c
index 72845f630ff6a4f9660c01ace9d8b600519b42a8..0fd920223a1c7e31ad110332d72e18558426670a 100644
--- a/src/slurmd/shm.c
+++ b/src/slurmd/shm.c
@@ -380,6 +380,7 @@ shm_insert_step(job_step_t *step)
 		slurm_seterrno_ret(ENOSPC);
 	} else {
 		_shm_step_copy(&slurmd_shm->step[i], step);
+		slurmd_shm->step[i].state = SLURMD_JOB_ALLOCATED;
 	}
 
 	_shm_unlock();
@@ -823,7 +824,6 @@ static void
 _shm_step_copy(job_step_t *to, job_step_t *from)
 {
 	memcpy(to, from, sizeof(job_step_t));
-	to->state = SLURMD_JOB_ALLOCATED;
 
 	/* addition of tasks is another step */
 	to->task_list = NULL;