diff --git a/src/common/slurm_protocol_defs.c b/src/common/slurm_protocol_defs.c
index dbef3f4d0808cb83caa3a0a7d68bf35788c66497..7053fcc9e9ba5d787aa7772557cbe359c1befc8c 100644
--- a/src/common/slurm_protocol_defs.c
+++ b/src/common/slurm_protocol_defs.c
@@ -205,7 +205,8 @@ void slurm_free_node_registration_status_msg
 		xfree(msg->node_name);
 		xfree(msg->job_id);
 		xfree(msg->step_id);
-		switch_g_free_node_info(&msg->switch_nodeinfo);
+		if (msg->startup)
+			switch_g_free_node_info(&msg->switch_nodeinfo);
 		xfree(msg);
 	}
 }