diff --git a/src/slurmctld/node_mgr.c b/src/slurmctld/node_mgr.c
index 25303ed44e25322d92f9f9484a820ce44f0d02ff..c4f84f014fa53128379e9529f1fd6b8031447a16 100644
--- a/src/slurmctld/node_mgr.c
+++ b/src/slurmctld/node_mgr.c
@@ -941,9 +941,10 @@ int update_node ( update_node_msg_t * update_node_msg )
 				error_code = ESLURM_INVALID_NODE_STATE;
 			}
 			base_state &= NODE_STATE_BASE;
-			node_flags = node_ptr->node_state & NODE_STATE_FLAGS;
 		}
+
 		if (state_val != (uint16_t) NO_VAL) {
+			node_flags = node_ptr->node_state & NODE_STATE_FLAGS;
 			if (state_val == NODE_RESUME) {
 				if (IS_NODE_IDLE(node_ptr) &&
 				    (IS_NODE_DRAIN(node_ptr) ||