diff --git a/src/srun/job.c b/src/srun/job.c
index ddb3cbf185553c73fb171234a387046895010edc..f78c7e1debf9d2ab2e30a71e53e68ebe951d555f 100644
--- a/src/srun/job.c
+++ b/src/srun/job.c
@@ -171,6 +171,16 @@ update_job_state(job_t *job, job_state_t state)
 	pthread_mutex_unlock(&job->state_mutex);
 }
 
+job_state_t 
+job_state(job_t *job)
+{
+	job_state_t state;
+	slurm_mutex_lock(&job->state_mutex);
+	state = job->state;
+	slurm_mutex_unlock(&job->state_mutex);
+	return state;
+}
+
 
 void 
 job_force_termination(job_t *job)
diff --git a/src/srun/job.h b/src/srun/job.h
index c47737516c165047287017c83722f708e4a220be..3a01f5acd1b5beaf59b7daad197fc06945bba3b7 100644
--- a/src/srun/job.h
+++ b/src/srun/job.h
@@ -145,6 +145,8 @@ typedef struct srun_job {
 void    update_job_state(job_t *job, job_state_t newstate);
 void    job_force_termination(job_t *job);
 
+job_state_t job_state(job_t *job);
+
 job_t * job_create_noalloc(void);
 job_t * job_create_allocation(resource_allocation_response_msg_t *resp);