diff --git a/src/slurmctld/gang.c b/src/slurmctld/gang.c
index a2b624963beabddcbb24d29e314df31dbc3c8c2d..e6d105e89c17aaea2a73115fd0f972520619f052 100644
--- a/src/slurmctld/gang.c
+++ b/src/slurmctld/gang.c
@@ -649,9 +649,10 @@ static int _suspend_job(uint32_t job_id)
 	debug3("gang: suspending %u", job_id);
 	msg.op = SUSPEND_JOB;
 	rc = job_suspend(&msg, 0, -1, false);
-	if (rc != SLURM_SUCCESS) {
-		error("gang: suspending job %u: %s", 
-		      job_id, slurm_strerror(rc));
+	/* job_suspend() returns ESLURM_DISABLED if job is already suspended */
+	if ((rc != SLURM_SUCCESS) && (rc != ESLURM_DISABLED)) {
+		info("gang: suspending job %u: %s", 
+		     job_id, slurm_strerror(rc));
 	}
 	return rc;
 }
@@ -727,7 +728,7 @@ static void _preempt_job_dequeue(void)
 		xfree(tmp_id);
 
 		if (preempt_mode == PREEMPT_MODE_SUSPEND)
-			rc = _suspend_job(job_id);
+			(void) _suspend_job(job_id);
 		else if (preempt_mode == PREEMPT_MODE_REQUEUE)
 			rc = _requeue_job(job_id);
 		else if (preempt_mode == PREEMPT_MODE_CHECKPOINT)
@@ -887,7 +888,7 @@ static void _update_active_row(struct gs_part *p_ptr, int add_new_jobs)
 			/* this job has been preempted by a shadow job.
 			 * suspend it and preserve it's job_list order */
 			if (j_ptr->sig_state != GS_SUSPEND) {
-				if (p_ptr->shadow_size)
+				if (p_ptr->num_shadows)
 					_preempt_job_queue(j_ptr->job_id);
 				else
 					_suspend_job(j_ptr->job_id);
@@ -909,7 +910,7 @@ static void _update_active_row(struct gs_part *p_ptr, int add_new_jobs)
 			/* this job has been preempted by a shadow job.
 			 * suspend it and preserve it's job_list order */
 			if (j_ptr->sig_state != GS_SUSPEND) {
-				if (p_ptr->shadow_size)
+				if (p_ptr->num_shadows)
 					_preempt_job_queue(j_ptr->job_id);
 				else
 					_suspend_job(j_ptr->job_id);
@@ -1083,7 +1084,7 @@ static uint16_t _add_job_to_part(struct gs_part *p_ptr,
 	} else {
 		debug3("gang: _add_job_to_part: suspending job %u",
 			job_ptr->job_id);
-		if (p_ptr->shadow_size)
+		if (p_ptr->num_shadows)
 			_preempt_job_queue(job_ptr->job_id);
 		else
 			_suspend_job(job_ptr->job_id);
@@ -1553,7 +1554,7 @@ static void _cycle_job_list(struct gs_part *p_ptr)
 		     (j_ptr->sig_state == GS_RESUME))) {
 		    	debug3("gang: _cycle_job_list: suspending job %u", 
 			       j_ptr->job_id);
-			if (p_ptr->shadow_size)
+			if (p_ptr->num_shadows)
 				_preempt_job_queue(j_ptr->job_id);
 			else
 				_suspend_job(j_ptr->job_id);