diff --git a/src/common/slurmdb_pack.c b/src/common/slurmdb_pack.c
index 0611ae37379cd1516e7fa631386fde19bfcb8e20..7d5aa7815523fcfac6dfe730cda278963a2ad91e 100644
--- a/src/common/slurmdb_pack.c
+++ b/src/common/slurmdb_pack.c
@@ -1632,7 +1632,9 @@ extern void slurmdb_pack_reservation_rec(void *in, uint16_t rpc_version,
 extern int slurmdb_unpack_reservation_rec(void **object, uint16_t rpc_version,
 					  Buf buffer)
 {
-	uint32_t uint32_tmp;
+	uint32_t uint32_tmp, count;
+	int i;
+	void *tmp_info;
 	slurmdb_reservation_rec_t *object_ptr =
 		xmalloc(sizeof(slurmdb_reservation_rec_t));
 
@@ -1654,6 +1656,18 @@ extern int slurmdb_unpack_reservation_rec(void **object, uint16_t rpc_version,
 		safe_unpack_time(&object_ptr->time_start_prev, buffer);
 		safe_unpackstr_xmalloc(&object_ptr->tres_str,
 				       &uint32_tmp, buffer);
+		safe_unpack32(&count, buffer);
+		if (count != NO_VAL) {
+			object_ptr->tres_list =
+				list_create(slurmdb_destroy_tres_rec);
+			for (i=0; i<count; i++) {
+				if (slurmdb_unpack_tres_rec(
+					    &tmp_info, rpc_version, buffer)
+				    != SLURM_SUCCESS)
+					goto unpack_error;
+				list_append(object_ptr->tres_list, tmp_info);
+			}
+		}
 	} else if (rpc_version >= SLURM_14_03_PROTOCOL_VERSION) {
 		uint64_t tmp64;
 		safe_unpack64(&tmp64, buffer); /* not needed (alloc_secs) */