diff --git a/src/slurmctld/job_scheduler.c b/src/slurmctld/job_scheduler.c
index 4bebe57da049272e6e7d9fcbec5bf84e453d4cf0..b087b0d7742bd7d1d6323446fff37a8db0ed96aa 100644
--- a/src/slurmctld/job_scheduler.c
+++ b/src/slurmctld/job_scheduler.c
@@ -727,6 +727,7 @@ extern int schedule(uint32_t job_limit)
 	job_queue_rec_t *job_queue_rec;
 	struct job_record *job_ptr = NULL;
 	struct part_record *part_ptr, **failed_parts = NULL;
+	struct part_record *skip_part_ptr = NULL;
 	struct slurmctld_resv **failed_resv = NULL;
 	bitstr_t *save_avail_node_bitmap;
 	struct part_record **sched_part_ptr = NULL;
@@ -1006,8 +1007,11 @@ next_part:			part_ptr = (struct part_record *)
 				break;
 			}
 			if (skip_job) {
-				debug("sched: reacked partition %s job limit",
-				      job_ptr->part_ptr->name);
+				if (job_ptr->part_ptr == skip_part_ptr)
+					continue;
+				debug2("sched: reached partition %s job limit",
+				       job_ptr->part_ptr->name);
+				skip_part_ptr = job_ptr->part_ptr;
 				continue;
 			}
 		}