diff --git a/NEWS b/NEWS
index a0f61ba81c8d5bbde1f69a3e380d8e928029c4b7..c573fa3719f59282d8042c682682463e4bcc9232 100644
--- a/NEWS
+++ b/NEWS
@@ -208,7 +208,8 @@ documents those changes that are of interest to users and admins.
     performance reasons.
  -- Add salloc options --chdir and --get-user-env (for Moab).
  -- Modify scontrol update to support job comment changes.
-
+ -- Do not clear a DRAINED node's reason field when slurmctld restarts.
+ 
 * Changes in SLURM 1.2.24
 =========================
  -- In sched/wiki and sched/wiki2, support non-zero UPDATE_TIME specification
diff --git a/src/slurmctld/node_mgr.c b/src/slurmctld/node_mgr.c
index 9d49b0c0f5417756ab2775b811d6d886f1a03346..bc9570c1d99bce9e3ae177a3df7abc45ef0ec0ae 100644
--- a/src/slurmctld/node_mgr.c
+++ b/src/slurmctld/node_mgr.c
@@ -1575,7 +1575,8 @@ extern int validate_node_specs(slurm_node_registration_status_msg_t *reg_msg)
 					node_flags;
 				node_ptr->last_idle = now;
 			}
-			xfree(node_ptr->reason);
+			if ((node_flags & NODE_STATE_DRAIN) == 0)
+				xfree(node_ptr->reason);
 			clusteracct_storage_g_node_up(acct_db_conn, 
 						      slurmctld_cluster_name,
 						      node_ptr, now);