diff --git a/src/slurmctld/node_mgr.c b/src/slurmctld/node_mgr.c
index 805662fff18d1e160722d2790cc9a6f1d9a15e8d..7fa6a4f9d486c29e340d326c208ea671fe573c5f 100644
--- a/src/slurmctld/node_mgr.c
+++ b/src/slurmctld/node_mgr.c
@@ -1168,6 +1168,7 @@ validate_node_specs (char *node_name, uint32_t cpus,
 				node_ptr->node_state = NODE_STATE_ALLOCATED;
 			else
 				node_ptr->node_state = NODE_STATE_IDLE;
+			xfree(node_ptr->reason);
 		} else if (node_ptr->node_state == NODE_STATE_DRAINING) {
 			if (job_count == 0) {
 				last_node_update = time (NULL);