diff --git a/src/slurmctld/node_scheduler.c b/src/slurmctld/node_scheduler.c
index 05a56c5e45da82789f4367b9038f672e4985d922..4b9716a11d6648f08ea783035324b5d22377b03e 100644
--- a/src/slurmctld/node_scheduler.c
+++ b/src/slurmctld/node_scheduler.c
@@ -1339,13 +1339,15 @@ extern int select_nodes(struct job_record *job_ptr, bool test_only,
 		    (detail_ptr->preempt_start_time >
 		     (now - slurmctld_conf.kill_wait -
 		      slurmctld_conf.msg_timeout))) {
-			/* Job preemption still in progress,
+			/* Job preemption may still be in progress,
 			 * do not preempt any more jobs yet */
 			error_code = ESLURM_NODES_BUSY;
 		} else {
 			_preempt_jobs(preemptee_job_list, &error_code);
-			if (error_code == ESLURM_NODES_BUSY)
+			if ((error_code == ESLURM_NODES_BUSY) &&
+			    (detail_ptr->preempt_start_time == 0)) {
   				detail_ptr->preempt_start_time = now;
+			}
 		}
 	}
 	if (error_code) {