diff --git a/src/common/slurm_protocol_defs.h b/src/common/slurm_protocol_defs.h
index 19618952171fe1dec2e531156f339a7746408eee..d76a9f53304d30afd01c0414b6c7231b9d2c41c3 100644
--- a/src/common/slurm_protocol_defs.h
+++ b/src/common/slurm_protocol_defs.h
@@ -213,6 +213,7 @@ typedef struct kill_tasks_msg {
 
 typedef struct epilog_complete_msg {
 	uint32_t job_id;
+	uint32_t return_code;
 	char    *node_name;
 } epilog_complete_msg_t;
 
diff --git a/src/common/slurm_protocol_pack.c b/src/common/slurm_protocol_pack.c
index 6ad5725ef06bfa9045c373b1d80a000a0e49be46..c056d32fb4df7ed4963f7f19b23bee0ba6c770eb 100644
--- a/src/common/slurm_protocol_pack.c
+++ b/src/common/slurm_protocol_pack.c
@@ -1145,6 +1145,7 @@ _pack_epilog_comp_msg(epilog_complete_msg_t * msg, Buf buffer)
 	assert(msg != NULL);
 
 	pack32(msg->job_id, buffer);
+	pack32(msg->return_code, buffer);
 	packstr(msg->node_name, buffer);
 }
 
@@ -1160,6 +1161,7 @@ _unpack_epilog_comp_msg(epilog_complete_msg_t ** msg, Buf buffer)
 	*msg = tmp_ptr;
 
 	safe_unpack32(&(tmp_ptr->job_id), buffer);
+	safe_unpack32(&(tmp_ptr->return_code), buffer);
 	safe_unpackstr_xmalloc(& (tmp_ptr->node_name), &uint16_tmp, buffer);
 	return SLURM_SUCCESS;