diff --git a/src/slurmctld/job_mgr.c b/src/slurmctld/job_mgr.c
index 89e79a14ae19efe6d81dca39ebda2068934f391d..1246c54f5467c580cc909d92c28304a2e9c8aa13 100644
--- a/src/slurmctld/job_mgr.c
+++ b/src/slurmctld/job_mgr.c
@@ -5401,6 +5401,14 @@ int update_job(job_desc_msg_t * job_specs, uid_t uid)
 
 	if (job_specs->begin_time) {
 		if (IS_JOB_PENDING(job_ptr) && detail_ptr) {
+			/* Make sure this time is current, it does no
+			   good for accounting to say this job could had
+			   started in the past since the job isn't
+			   going to start until now as the earliest. 
+			*/
+			if(job_specs->begin_time < now)
+				job_specs->begin_time = now;
+
 			detail_ptr->begin_time = job_specs->begin_time;
 			update_accounting = true;
 			if ((job_ptr->priority == 1) &&