diff --git a/src/slurmctld/job_mgr.c b/src/slurmctld/job_mgr.c
index 966a700fc743817eee2c42f36a9318320dc93d87..7d3423e4bf84217e4e7676ca1e0b37dd6968873a 100644
--- a/src/slurmctld/job_mgr.c
+++ b/src/slurmctld/job_mgr.c
@@ -5142,7 +5142,7 @@ extern int job_complete(uint32_t job_id, uid_t uid, bool requeue,
 			job_ptr->requid = uid;
 		} else if ((job_return_code & 0xff) == SIG_OOM) {
 			job_ptr->job_state = JOB_OOM | job_comp_flag;
-			job_ptr->exit_code = job_return_code & 0xffffff00;
+			job_ptr->exit_code = SIG_OOM;
 			job_ptr->state_reason = FAIL_OOM;
 			xfree(job_ptr->state_desc);
 		} else if (WIFEXITED(job_return_code) &&
diff --git a/src/slurmctld/step_mgr.c b/src/slurmctld/step_mgr.c
index f4d1c83b324cded61c15b049e2ea26c29ee2ac6a..4474ed22a7823af3c0b4c74277d0aef87a7137da 100644
--- a/src/slurmctld/step_mgr.c
+++ b/src/slurmctld/step_mgr.c
@@ -251,7 +251,7 @@ static void _internal_step_complete(struct job_record *job_ptr,
 		return;
 
 	if ((step_ptr->step_id != SLURM_EXTERN_CONT) &&
-	    ((step_ptr->exit_code & SIG_OOM) ||
+	    ((step_ptr->exit_code == SIG_OOM) ||
 	     (step_ptr->exit_code > job_ptr->derived_ec)))
 		job_ptr->derived_ec = step_ptr->exit_code;
 
@@ -3426,7 +3426,7 @@ extern int step_partial_comp(step_complete_msg_t *req, uid_t uid,
 		*/
 		req->range_last = nodes - 1;
 #endif
-		if ((req->step_rc & SIG_OOM) ||
+		if ((req->step_rc == SIG_OOM) ||
 		    (req->step_rc > step_ptr->exit_code))
 			step_ptr->exit_code = req->step_rc;
 	}