diff --git a/NEWS b/NEWS
index 9c4ae893efe6f00091b70d53862fee6ff2179ea7..72e540b437e42075e6a83824ac9043afda61bded 100644
--- a/NEWS
+++ b/NEWS
@@ -7,6 +7,8 @@ documents those changes that are of interest to users and admins.
     distributing large rlimit to jobs.
  -- Add support for slurm_spawn() and associated APIs (needed for IBM 
     SP systems).
+ -- Fix bug in update of node state to DRAINING/DRAINED when update 
+    request occurs prior to initial node registration.
 
 * Changes in SLURM 0.3.4
 ========================
diff --git a/src/slurmctld/node_mgr.c b/src/slurmctld/node_mgr.c
index 659bfdd2eed9d7883eb110e0566f36df2b7ed3dd..2c3e748bc6c0ca50acf820be41de2e362b44f7e7 100644
--- a/src/slurmctld/node_mgr.c
+++ b/src/slurmctld/node_mgr.c
@@ -911,7 +911,7 @@ int update_node ( update_node_msg_t * update_node_msg )
 			}
 			else if ((state_val == NODE_STATE_DRAINED) ||
 			         (state_val == NODE_STATE_DRAINING)) {
-				if (bit_test (idle_node_bitmap, node_inx))
+				if ((node_ptr->run_job_cnt + node_ptr->comp_job_cnt) == 0)
 					state_val = NODE_STATE_DRAINED;
 				else
 					state_val = NODE_STATE_DRAINING;