diff --git a/src/common/slurm_protocol_defs.c b/src/common/slurm_protocol_defs.c
index 89b2ec8896701e696a6c13820229bbf7bfe5a30a..abbade28a44a0b34c7801a54a2360c9ce3b9d228 100644
--- a/src/common/slurm_protocol_defs.c
+++ b/src/common/slurm_protocol_defs.c
@@ -283,12 +283,6 @@ void inline slurm_free_part_info_request_msg(
 	xfree(msg);
 }
 
-void inline slurm_free_resv_info_request_msg(
-		resv_info_request_msg_t *msg)
-{
-	xfree(msg);
-}
-
 void slurm_free_job_desc_msg(job_desc_msg_t * msg)
 {
 	int i;
@@ -321,6 +315,7 @@ void slurm_free_job_desc_msg(job_desc_msg_t * msg)
 		xfree(msg->partition);
 		xfree(msg->ramdiskimage);
 		xfree(msg->req_nodes);
+		xfree(msg->reservation);
 		xfree(msg->resp_host);
 		xfree(msg->script);
 		select_g_free_jobinfo(&msg->select_jobinfo);
@@ -463,6 +458,11 @@ void slurm_free_resv_name_msg(reservation_name_msg_t * msg)
 	}
 }
 
+void slurm_free_resv_info_request_msg(resv_info_request_msg_t * msg)
+{
+	xfree(msg);
+}
+
 void slurm_free_job_step_create_request_msg(job_step_create_request_msg_t *
 					    msg)
 {
@@ -479,9 +479,7 @@ void slurm_free_job_step_create_request_msg(job_step_create_request_msg_t *
 void slurm_free_complete_job_allocation_msg(
 	complete_job_allocation_msg_t * msg)
 {
-	if (msg) {
-		xfree(msg);
-	}
+	xfree(msg);
 }
 
 void slurm_free_complete_batch_script_msg(complete_batch_script_msg_t * msg)
@@ -1568,6 +1566,9 @@ extern int slurm_free_msg_data(slurm_msg_type_t type, void *data)
 	case RESPONSE_CREATE_RESERVATION:		
 		slurm_free_resv_name_msg(data);
 		break;
+	case REQUEST_RESERVATION_INFO:
+		slurm_free_resv_info_request_msg(data);
+		break;
 	case REQUEST_NODE_REGISTRATION_STATUS:
 		slurm_free_node_registration_status_msg(data);
 		break;
@@ -1659,7 +1660,6 @@ extern int slurm_free_msg_data(slurm_msg_type_t type, void *data)
 	case REQUEST_DAEMON_STATUS:
 	case REQUEST_HEALTH_CHECK:
 	case ACCOUNTING_FIRST_REG:
-	case REQUEST_RESERVATION_INFO:
 		/* No body to free */
 		break;
 	case ACCOUNTING_UPDATE_MSG:
diff --git a/src/common/slurm_protocol_defs.h b/src/common/slurm_protocol_defs.h
index 2a50f40156d7521d123cbd650a60a236b572a4e5..b86729039c354f04dc678e425f6941c2668cae0d 100644
--- a/src/common/slurm_protocol_defs.h
+++ b/src/common/slurm_protocol_defs.h
@@ -840,7 +840,7 @@ void inline slurm_free_update_part_msg(update_part_msg_t * msg);
 void inline slurm_free_delete_part_msg(delete_part_msg_t * msg);
 void inline slurm_free_update_resv_msg(reserve_request_msg_t * msg);
 void inline slurm_free_resv_name_msg(reservation_name_msg_t * msg);
-void inline slurm_free_resv_info_msg(reserve_info_msg_t * msg);
+void inline slurm_free_resv_info_request_msg(resv_info_request_msg_t * msg);
 void inline
 slurm_free_job_step_create_request_msg(job_step_create_request_msg_t * msg);
 void inline
diff --git a/src/slurmctld/proc_req.c b/src/slurmctld/proc_req.c
index d0a9dc2ae9f001c6296c042d2dbc6c804ea28806..5ae2e4b75b26a360b16c36d1ea6f34216f0b8c1f 100644
--- a/src/slurmctld/proc_req.c
+++ b/src/slurmctld/proc_req.c
@@ -281,7 +281,7 @@ void slurmctld_req (slurm_msg_t * msg)
 		break;
 	case REQUEST_RESERVATION_INFO:
 		_slurm_rpc_resv_show(msg);
-		/* No body to free */
+		slurm_free_resv_info_request_msg(msg->data);
 		break;
 	case REQUEST_NODE_REGISTRATION_STATUS:
 		error("slurmctld is talking with itself. "