diff --git a/src/slurmctld/job_mgr.c b/src/slurmctld/job_mgr.c
index 57d84879cd306b66bb4fd87857f504ee4e7dfef3..956d11f4410da0fbcff6bd9404a9befa3b57df6b 100644
--- a/src/slurmctld/job_mgr.c
+++ b/src/slurmctld/job_mgr.c
@@ -2450,6 +2450,11 @@ void job_time_limit(void)
 		if (job_ptr->job_state != JOB_RUNNING)
 			continue;
 
+		/* Consider a job active if it has any active steps */
+		if (job_ptr->step_list
+		&&  (list_count(job_ptr->step_list) > 0))
+			job_ptr->time_last_active = now;
+
 		if (slurmctld_conf.inactive_limit
 		&&  (job_ptr->time_last_active <= old)
 		&&  (job_ptr->part_ptr)