diff --git a/pdf.c b/pdf.c
index 976433a68c052a01e263db07f67b90054aa6fa55..6ba8f089927af330317a7efaf904a3a9ac228170 100644
--- a/pdf.c
+++ b/pdf.c
@@ -3426,9 +3426,10 @@ LZWDecode(const Dict *parms, HBytes b, HParser *p)
 	//assert(!done);
 
 	// SR::TODO:: Do a H_MAKE rather than a parse and let the caller do the parse
-	//res = h_parse(p, pred.out, pred.nout);
-	res = h_parse(p, tmp_res->ast->bytes.token, tmp_res->ast->bytes.len); // XXX depred buffer
-	//free(pred.out);
+	res = h_parse(p, pred.out, pred.nout);
+	//res = h_parse(p, tmp_res->ast->bytes.token, tmp_res->ast->bytes.len); // XXX depred buffer
+	free(pred.out);
+	free(tmp_buf);
 
 	//bind_lzw_spec(NULL);
 	//delete_lzw_spec(lzw_spec);