diff --git a/src/slurmctld/job_mgr.c b/src/slurmctld/job_mgr.c
index 90971339422d2d6a7c09adb2e5b907bfb1e6390c..3516beb26c3dfa536ba21f8f390be017ea114d2c 100644
--- a/src/slurmctld/job_mgr.c
+++ b/src/slurmctld/job_mgr.c
@@ -5447,7 +5447,8 @@ static void _purge_lost_batch_jobs(int node_inx, time_t now)
 	while ((job_ptr = (struct job_record *) list_next(job_iterator))) {
 		bool job_active = ((job_ptr->job_state == JOB_RUNNING) ||
 				   (job_ptr->job_state == JOB_SUSPENDED));
-		if (!job_active)
+		if ((!job_active) ||
+		    (!bit_test(job_ptr->node_bitmap, node_inx)))
 			continue;
 		if (job_ptr->batch_flag == 0) {
 			_notify_srun_missing_step(job_ptr, node_inx, now);