diff --git a/pdf.c b/pdf.c
index ec5bb1b8ec7a1aee87d0635ca9a598db951d623b..1c3441ffa543da807ea194c949fcdf7cd1275b72 100644
--- a/pdf.c
+++ b/pdf.c
@@ -171,8 +171,8 @@ pdf_parser(void)
 	/* arrays and dictionaries */
 	H_RULE(obj,	h_indirect());
 	H_RULE(k_v,	SEQ(name, obj));
-	H_RULE(dict,	SEQ(KW("<<"), h_many(k_v), KW(">>")));
-	H_RULE(array,	SEQ(KW("["), h_many(obj), KW("]")));
+	H_RULE(dict,	h_middle(KW("<<"), h_many(k_v), KW(">>")));
+	H_RULE(array,	h_middle(KW("["), h_many(obj), KW("]")));
 
 	/* streams */
 	H_RULE(stream,	h_nothing_p());	// XXX