diff --git a/NEWS b/NEWS
index fc53562d3265a720cc3be58aa7f4049de62a0d80..326befdcc292da7c0cbca9a6d40b712af797caa9 100644
--- a/NEWS
+++ b/NEWS
@@ -85,6 +85,7 @@ documents those changes that are of interest to users and administrators.
  -- Refactor slurmctld agent logic to eliminate some pthreads.
  -- Added "SyscfgTimeout" parameter to knl.conf configuration file.
  -- Fix for CPU binding for job steps run under a batch job.
+ -- Fix 'flags' variable to be 32 bit from the old 16 bit value in the perl api.
 
 * Changes in Slurm 17.02.0
 ==========================
diff --git a/contribs/perlapi/libslurm/perl/reservation.c b/contribs/perlapi/libslurm/perl/reservation.c
index ed4785bb7b8672e44dac64c47e7ec5eb47a8e998..577e9e4ae9cc68047b2615a50ccb7130c38ccb80 100644
--- a/contribs/perlapi/libslurm/perl/reservation.c
+++ b/contribs/perlapi/libslurm/perl/reservation.c
@@ -22,7 +22,7 @@ reserve_info_to_hv(reserve_info_t *reserve_info, HV *hv)
 	STORE_FIELD(hv, reserve_info, end_time, time_t);
 	if (reserve_info->features)
 		STORE_FIELD(hv, reserve_info, features, charp);
-	STORE_FIELD(hv, reserve_info, flags, uint16_t);
+	STORE_FIELD(hv, reserve_info, flags, uint32_t);
 	if (reserve_info->licenses)
 		STORE_FIELD(hv, reserve_info, licenses, charp);
 	if (reserve_info->name)
@@ -68,7 +68,7 @@ hv_to_reserve_info(HV *hv, reserve_info_t *resv_info)
 	FETCH_FIELD(hv, resv_info, accounts, charp, FALSE);
 	FETCH_FIELD(hv, resv_info, end_time, time_t, TRUE);
 	FETCH_FIELD(hv, resv_info, features, charp, FALSE);
-	FETCH_FIELD(hv, resv_info, flags, uint16_t, TRUE);
+	FETCH_FIELD(hv, resv_info, flags, uint32_t, TRUE);
 	FETCH_FIELD(hv, resv_info, licenses, charp, FALSE);
 	FETCH_FIELD(hv, resv_info, name, charp, TRUE);
 	FETCH_FIELD(hv, resv_info, node_cnt, uint32_t, TRUE);
@@ -171,7 +171,7 @@ hv_to_update_reservation_msg(HV *hv, resv_desc_msg_t *resv_msg)
 	FETCH_FIELD(hv, resv_msg, duration, uint32_t, FALSE);
 	FETCH_FIELD(hv, resv_msg, end_time, time_t, FALSE);
 	FETCH_FIELD(hv, resv_msg, features, charp, FALSE);
-	FETCH_FIELD(hv, resv_msg, flags, uint16_t, FALSE);
+	FETCH_FIELD(hv, resv_msg, flags, uint32_t, FALSE);
 	FETCH_FIELD(hv, resv_msg, licenses, charp, FALSE);
 	FETCH_FIELD(hv, resv_msg, name, charp, FALSE);
 	FETCH_PTR_FIELD(hv, resv_msg, node_cnt, "SLURM::uint32_t", FALSE);