diff --git a/src/slurmctld/step_mgr.c b/src/slurmctld/step_mgr.c
index e9d51f0ed9ef4e21f61693b4b3e5d0bae6f8edd0..08853f173583169cad14f459c036f8e4ce37eb68 100644
--- a/src/slurmctld/step_mgr.c
+++ b/src/slurmctld/step_mgr.c
@@ -296,7 +296,8 @@ step_create ( step_specs *step_specs, struct step_record** new_step_record  )
 	struct job_record  *job_ptr;
 	bitstr_t *nodeset;
 #ifdef HAVE_LIBELAN3
-	int first, last, i, node_id, nprocs;
+	int first, last, i, node_id;
+	int nprocs = step_specs->cpu_count;
 	int node_set_size = QSW_MAX_TASKS; /* overkill but safe */
 #endif
 
@@ -349,7 +350,6 @@ step_create ( step_specs *step_specs, struct step_record** new_step_record  )
 				       node_record_table_ptr[i].name);
 		}
 	}
-	nprocs = 1;	/* allocate based upon nodeset only */
 	if (qsw_setup_jobinfo (step_ptr->qsw_job, nprocs, nodeset, step_ptr->cyclic_alloc) < 0)
 		fatal ("step_create: qsw_setup_jobinfo error %m");
 	bit_free (nodeset);