diff --git a/pdf.c b/pdf.c
index 9b58c23b05ebddfd48f377591bd411aa871f6902..edfb404ff37552607634d9343998f0cf30beb9bd 100644
--- a/pdf.c
+++ b/pdf.c
@@ -661,8 +661,9 @@ init_parser(struct Env *aux)
 		// NB: lws before xref offset is allowed, cf. p.48 (example 4)
 	H_RULE(xr_td,	SEQ(xrefs, KW("trailer"), ws, dict));
 
+	H_RULE(junk,    h_many1(h_butnot(h_ch_range(0, 255), objdef)));
 	H_RULE(tail,	SEQ(body, h_optional(xr_td), startxr));
-	H_RULE(pdf,	SEQ(header, h_many1(tail), end));
+	H_RULE(pdf,	SEQ(header, OPT(junk), h_many1(tail), end));
 
 	/* debug parser to consume as much as possible */
 	H_RULE(pdfdbg,	SEQ(header, h_many(tail), body, OPT(xr_td), OPT(startxr)));