diff --git a/src/slurmctld/node_scheduler.c b/src/slurmctld/node_scheduler.c
index 1ef5cf13ecf989319eda68cb1202d2278ebdf7dd..723566920d5664ff97e45f8bbfa06b026cc31297 100644
--- a/src/slurmctld/node_scheduler.c
+++ b/src/slurmctld/node_scheduler.c
@@ -129,6 +129,7 @@ static bitstr_t *_valid_features(struct job_details *detail_ptr,
 extern void allocate_nodes(struct job_record *job_ptr)
 {
 	int i;
+	struct node_record *node_ptr;
 
 #ifdef HAVE_FRONT_END
 	job_ptr->front_end_ptr = assign_front_end();
@@ -138,13 +139,13 @@ extern void allocate_nodes(struct job_record *job_ptr)
 #endif
 
 	xfree(job_ptr->batch_host);
-	for (i = 0; i < node_record_count; i++) {
+	for (i = 0, node_ptr = node_record_table_ptr;
+	     i < node_record_count; i++, node_ptr++) {
 		if (!bit_test(job_ptr->node_bitmap, i))
 			continue;
-		make_node_alloc(&node_record_table_ptr[i], job_ptr);
-		if (job_ptr->batch_host)
-			continue;
-		job_ptr->batch_host = xstrdup(node_record_table_ptr[i].name);
+		make_node_alloc(node_ptr, job_ptr);
+		if (!job_ptr->batch_host)
+			job_ptr->batch_host = xstrdup(node_ptr->name);
 	}
 	last_node_update = time(NULL);