diff --git a/src/plugins/topology/3d_torus/hilbert_slurm.c b/src/plugins/topology/3d_torus/hilbert_slurm.c
index de475deef8b6f340bed6599d830fe54fa56333df..c2d60d2825ca367cf51afb7aff1f2ee4f624d9af 100644
--- a/src/plugins/topology/3d_torus/hilbert_slurm.c
+++ b/src/plugins/topology/3d_torus/hilbert_slurm.c
@@ -53,6 +53,7 @@
  * be called once, immediately after reading the slurm.conf file. */
 extern void nodes_to_hilbert_curve(void)
 {
+	static bool first_run = true;
 	int coord_inx, i, j, k, max_coord = 0;
 	int *coords;
 	struct node_record *node_ptr;
@@ -67,6 +68,12 @@ extern void nodes_to_hilbert_curve(void)
 #endif	/* SYSTEM_DIMENSIONS != 3) */
 #endif	/* !HAVE_SUN_CONST */
 
+	/* We can only re-order the nodes once at slurmctld startup.
+	 * After that time, many bitmaps are created based upon the
+	 * index of each node name in the array. */
+	if (!first_run)
+		return;
+
 	/* Get the coordinates for each node based upon its numeric suffix */
 	coords = xmalloc(sizeof(int) * node_record_count * dims);
 	for (i=0, coord_inx=0, node_ptr=node_record_table_ptr;
diff --git a/src/slurmctld/read_config.c b/src/slurmctld/read_config.c
index eff8c9ebf61fcf43abc8038ffb436e602ca1352e..67acf3dfa63e65c65ce4213acf723cc12b751bd9 100644
--- a/src/slurmctld/read_config.c
+++ b/src/slurmctld/read_config.c
@@ -128,17 +128,9 @@ static void _validate_node_proc_count(void);
 static void _reorder_node_record_table(void)
 {
 	struct node_record *node_ptr, *node_ptr2;
-	static bool first_run = true;
 	int i, j, min_inx;
 	uint32_t min_val;
 
-	/* We can only re-order the nodes once at slurmctld startup.
-	 * After that time, many bitmaps are created based upon the
-	 * index of each node name in the array. */
-	if (!first_run)
-		return;
-	first_run = false;
-
 	/* Now we need to sort the node records */
 	for (i = 0; i < node_record_count; i++) {
 		min_val = node_record_table_ptr[i].node_rank;