diff --git a/src/plugins/sched/backfill/backfill.c b/src/plugins/sched/backfill/backfill.c
index aae193d2ff028da8f675d8bd58cfd80390ad7be3..82e48e1c265ac3c1405e2111683a02e3a9664e52 100644
--- a/src/plugins/sched/backfill/backfill.c
+++ b/src/plugins/sched/backfill/backfill.c
@@ -1318,7 +1318,11 @@ static void _add_reservation(uint32_t start_time, uint32_t end_reserve,
 	int i, j;
 
 	for (j = 0; ; ) {
-		if (node_space[j].end_time > start_time) {
+		if ((node_space[j].begin_time >= start_time) ||
+		    (node_space[j].end_time   == start_time)) {
+			/* no need to insert new start entry record */
+			placed = true;
+		} else if (node_space[j].end_time > start_time) {
 			/* insert start entry record */
 			i = *node_space_recs;
 			node_space[i].begin_time = start_time;
@@ -1331,10 +1335,6 @@ static void _add_reservation(uint32_t start_time, uint32_t end_reserve,
 			(*node_space_recs)++;
 			placed = true;
 		}
-		if (node_space[j].end_time == start_time) {
-			/* no need to insert new start entry record */
-			placed = true;
-		}
 		if (placed == true) {
 			while ((j = node_space[j].next)) {
 				if (end_reserve == node_space[j].end_time)