diff --git a/src/parallel_io.c b/src/parallel_io.c
index 9e9ba6aed93408eb71c96533fe832e080a4e7d08..ab856f42c0aae576ff3509d7759fd15a9381e764 100644
--- a/src/parallel_io.c
+++ b/src/parallel_io.c
@@ -218,24 +218,24 @@ void readArray(hid_t grp, struct io_props props, size_t N, long long N_total,
       error("Error getting property list for data set '%s'", props.name);
 
     /* Recover the number of filters in the list */
-    const int n_filters = H5Pget_nfilters(props);
+    const int n_filters = H5Pget_nfilters(h_plist);
 
     for (int n = 0; n < n_filters; ++n) {
 
       unsigned int flag;
-      size_t cd_nelmts = 10;
+      size_t cd_nelmts = 32;
       unsigned int* cd_values = malloc(cd_nelmts * sizeof(unsigned int));
       size_t namelen = 256;
-      char* name = calloc(namelen * sizeof(char));
+      char* name = calloc(namelen, sizeof(char));
       unsigned int filter_config;
 
       /* Recover the n^th filter in the list */
       const H5Z_filter_t filter =
-          H5Pget_filter(props, n, &flag, &cd_nelmts, cd_values, namelen, name,
+          H5Pget_filter(h_plist, n, &flag, &cd_nelmts, cd_values, namelen, name,
                         &filter_config);
       if (filter < 0)
         error("Error retrieving %d^th (%d) filter for data set '%s'", n,
-              f_filters, props.name);
+              n_filters, props.name);
 
       /* Now check whether the deflate filter had been applied */
       if (filter == H5Z_FILTER_DEFLATE)
@@ -243,14 +243,17 @@ void readArray(hid_t grp, struct io_props props, size_t N, long long N_total,
             "HDF5 1.10.2 cannot correctly read data that was compressed with "
             "the 'deflate' filter.\nThe field '%s' has had this filter applied "
             "and the code would silently read garbage into the particle arrays "
-            "so we'd rather stop here.You can:\n - Recompile the code with an "
+            "so we'd rather stop here. You can:\n - Recompile the code with an "
             "earlier or older version of HDF5.\n - Use the 'h5repack' tool to "
-            "remove the filter from the ICs.",
+            "remove the filter from the ICs (e.g. h5repack -f NONE -i in_file "
+            "-o out_file).\n",
             props.name);
 
       free(name);
       free(cd_values);
     }
+
+    H5Pclose(h_plist);
   }
 #endif