diff --git a/src/slurmctld/agent.c b/src/slurmctld/agent.c
index 92eae185b6a115a4addf6f8ecf7563753fafedf3..d2edb76bd5bc8c463f17ccd525fc08f608d9c31d 100644
--- a/src/slurmctld/agent.c
+++ b/src/slurmctld/agent.c
@@ -1467,21 +1467,25 @@ static char *_mail_type_str(uint16_t mail_type)
 static void _set_job_time(struct job_record *job_ptr, uint16_t mail_type,
 			  char *buf, int buf_len)
 {
-	time_t delay = NO_VAL;
+	time_t interval = NO_VAL;
 
+	buf[0] = '\0';
 	if ((mail_type == MAIL_JOB_BEGIN) && job_ptr->start_time &&
 	    job_ptr->details && job_ptr->details->submit_time) {
-		delay = job_ptr->start_time - job_ptr->details->submit_time;
+		interval = job_ptr->start_time - job_ptr->details->submit_time;
+		snprintf(buf, buf_len, ", Queued time ");
+		secs2time_str(interval, buf+14, buf_len-14);
 	}
+
 	if (((mail_type == MAIL_JOB_END) || (mail_type == MAIL_JOB_FAIL)) &&
 	    job_ptr->start_time && job_ptr->end_time) {
-		delay = job_ptr->end_time - job_ptr->start_time;
-	}
-	if (delay != NO_VAL) {
-		snprintf(buf, buf_len, " After ");
-		secs2time_str(delay, buf+7, buf_len-7);
-	} else if (buf_len) {
-		buf[0] = '\0';
+		if (job_ptr->suspend_time) {
+			interval  = job_ptr->end_time - job_ptr->suspend_time;
+			interval += job_ptr->pre_sus_time;
+		} else
+			interval = job_ptr->end_time - job_ptr->start_time;
+		snprintf(buf, buf_len, ", Run time ");
+		secs2time_str(interval, buf+11, buf_len-11);
 	}
 }