diff --git a/src/plugins/select/bluegene/select_bluegene.c b/src/plugins/select/bluegene/select_bluegene.c
index 97fc7385a9d07d939ad2796ff86975a64ff4af7a..269a30262abe7cbe2055aeb801d8f6c8630d8150 100644
--- a/src/plugins/select/bluegene/select_bluegene.c
+++ b/src/plugins/select/bluegene/select_bluegene.c
@@ -1977,7 +1977,11 @@ extern int select_p_step_finish(struct step_record *step_ptr)
 	xassert(step_ptr);
 
 
+	if (IS_JOB_COMPLETING(step_ptr->job_ptr)) {
+		debug("step completion %u.%u was received after job "
+		      "allocation is already completing, no cleanup needed",
 		      step_ptr->job_ptr->job_id, step_ptr->step_id);
+		return SLURM_SUCCESS;
 	}
 
 	jobinfo = step_ptr->job_ptr->select_jobinfo->data;