diff --git a/pdf.c b/pdf.c
index 3f276a02a30d93e031c9a16bda02ba73cb2ddbe0..c2c6f7dd5d1f67a8c39e0360a5e37cdcbfe9d301 100644
--- a/pdf.c
+++ b/pdf.c
@@ -1473,6 +1473,7 @@ FlateDecode(const Dict *parms, HBytes b, HParser *p)
 		// XXX always return NULL on error?
 #else
 	res = h_parse(p, pred.out, pred.nout);
+	free(pred.out);
 #endif
 	inflateEnd(&strm);
 	free(pred.buf);