diff --git a/NEWS b/NEWS
index a890c5d1516c2201ca8f33d1e8b62399f301e913..e8e33613bd3ed1774faf374a0dda5300fe9c0044 100644
--- a/NEWS
+++ b/NEWS
@@ -339,6 +339,10 @@ documents those changes that are of interest to users and admins.
  -- Fix issue with assoc_mgr if a bad state file is given and the database
     isn't up at the time the slurmctld starts, not running the
     priority/multifactor plugin, and then the database is started up later.
+ -- Gres: If a gres has a count of one and an associated file then when doing
+    a reconfiguration, the node's bitmap was not cleared resulting in an
+    underflow upon job termination or removal from scheduling matrix by the
+    backfill scheduler.
 
 * Changes in SLURM 2.3.5
 ========================
diff --git a/src/common/gres.c b/src/common/gres.c
index 8b74ef90f6db54a5c6826401a5cd4cb6d658cc04..a6f645716de592f349baf7bf472af33f3d3e56e3 100644
--- a/src/common/gres.c
+++ b/src/common/gres.c
@@ -1854,7 +1854,7 @@ static void _node_state_dealloc(gres_state_t *gres_ptr)
 	gres_node_ptr->gres_cnt_alloc = 0;
 	if (gres_node_ptr->gres_bit_alloc) {
 		int i = bit_size(gres_node_ptr->gres_bit_alloc) - 1;
-		if (i > 0)
+		if (i >= 0)
 			bit_nclear(gres_node_ptr->gres_bit_alloc, 0, i);
 	}
 	if (gres_node_ptr->topo_cnt && !gres_node_ptr->topo_gres_cnt_alloc) {