diff --git a/slurm/slurm.h.in b/slurm/slurm.h.in
index 875039704759d1aaa8cb145a00a4465ba783cb22..d5b54b84509cfc8f56e2d728516b0212bbd51d0b 100644
--- a/slurm/slurm.h.in
+++ b/slurm/slurm.h.in
@@ -99,6 +99,7 @@ BEGIN_C_DECLS
 enum job_states {
 	JOB_PENDING,		/* queued waiting for initiation */
 	JOB_RUNNING,		/* allocated resources and executing */
+	JOB_COMPLETING,		/* completing execution */
 	JOB_COMPLETE,		/* completed execution successfully */
 	JOB_FAILED,		/* completed execution unsuccessfully */
 	JOB_TIMEOUT,		/* terminated on reaching time limit */
diff --git a/src/common/slurm_protocol_defs.c b/src/common/slurm_protocol_defs.c
index bdd943de2e0f449c9f95c56b94a7da5defb7c7b9..d96d5c875c95bcd3ec6488403ae7542be445562f 100644
--- a/src/common/slurm_protocol_defs.c
+++ b/src/common/slurm_protocol_defs.c
@@ -292,7 +292,8 @@ char *job_state_string(enum job_states inx)
 	static char *job_state_string[] = {
 		"PENDING",
 		"RUNNING",
-		"COMPLETE",
+		"COMPLETING",
+		"COMPLETED",
 		"FAILED",
 		"TIMEOUT",
 		"NODE_FAIL",
@@ -306,7 +307,8 @@ char *job_state_string_compact(enum job_states inx)
 	static char *job_state_string[] = {
 		"PD",
 		"R",
-		"C",
+		"CG",
+		"CD",
 		"F",
 		"TO",
 		"END"