diff --git a/pdf.c b/pdf.c
index 8f4c3fd4e7d148dca1dfa58ceb3a3dafbb6c0faf..d7c21060aa476f506c406039268189e30b1f184a 100644
--- a/pdf.c
+++ b/pdf.c
@@ -1052,8 +1052,9 @@ init_parser(struct Env *aux)
 	h_bind_indirect(array, array_);
 
 	/* streams */
-	H_RULE(stmbeg,	SEQ(dict, OPT(ws), LIT("stream"), OPT(cr), lf));
-	H_RULE(stmend, CHX(SEQ(eol, LIT("endstream")),
+	H_RULE(stmbeg,	SEQ(dict, OPT(ws), LIT("stream"), OPT(cr),
+			    CHX(lf, VIOL(epsilon, "No linefeed after 'stream' (severity=7)"))));
+	H_RULE(stmend,	CHX(SEQ(eol, LIT("endstream")),
 			   VIOL(LIT("ndstream"), "Stream length >1-too-long (severity=10)"),
 			   VIOL(SEQ(h_many1(wchar), LIT("endstream")),
 				"No newline before endstream (severity=7)"),