diff --git a/src/slurmctld/acct_policy.c b/src/slurmctld/acct_policy.c
index 7a0d9ae6495d0533e650dc49a63e75c035e8f20c..73f5cd2624d7c5dd2f193a2d6f2dd4ba3664340e 100644
--- a/src/slurmctld/acct_policy.c
+++ b/src/slurmctld/acct_policy.c
@@ -604,6 +604,8 @@ end_qos:
 				     job_ptr->details->min_nodes, 
 				     assoc_ptr->grp_nodes, assoc_ptr->acct);
 				_cancel_job(job_ptr);
+				rc = false;
+				goto end_it;
 			} else if ((assoc_ptr->grp_used_nodes + 
 				    job_ptr->details->min_nodes) > 
 				   assoc_ptr->grp_nodes) {
diff --git a/src/slurmd/slurmd/slurmd.c b/src/slurmd/slurmd/slurmd.c
index d8c37c852873674088471e4c999ce02494b90f50..30c33885c284eddfa9e74b13834eaa6a23ba300f 100644
--- a/src/slurmd/slurmd/slurmd.c
+++ b/src/slurmd/slurmd/slurmd.c
@@ -734,7 +734,21 @@ _read_config(void)
 		    &conf->block_map_size,
 		    &conf->block_map, &conf->block_map_inv);
 
-	if(!cf->fast_schedule) {
+	if(cf->fast_schedule && 
+	   ((conf->conf_cpus != conf->actual_cpus)    ||
+	    (conf->sockets   != conf->actual_sockets) ||
+	    (conf->cores     != conf->actual_cores)   ||
+	    (conf->threads   != conf->actual_threads))) {
+		info("Node configuration differs from hardware\n"
+		     "   Procs=%u:%u(hw) Sockets=%u:%u(hw)\n"
+		     "   CoresPerSocket%u:%u(hw) ThreadsPerCore:%u:%u(hw)",
+		     conf->conf_cpus,    conf->actual_cpus,
+		     conf->conf_sockets, conf->actual_sockets,
+		     conf->conf_cores,   conf->actual_cores,
+		     conf->conf_threads, conf->actual_threads);
+	}
+
+	if((cf->fast_schedule == 0) || (conf->actual_cpus < conf->conf_cpus)) {
 		conf->cpus    = conf->actual_cpus;
 		conf->sockets = conf->actual_sockets;
 		conf->cores   = conf->actual_cores;