diff --git a/lib/layer/iterate.c b/lib/layer/iterate.c
index 3ade012438df10c63458a0a1a0f45bcfd2887949..a2a970058bfc99b085956ab9cb2e4f5aa0f8e342 100644
--- a/lib/layer/iterate.c
+++ b/lib/layer/iterate.c
@@ -166,7 +166,7 @@ static int update_answer(const knot_rrset_t *rr, unsigned hint, struct kr_reques
 {
 	/* Scrub DNSSEC records when not requested. */
 	knot_pkt_t *answer = req->answer;
-	if (!knot_edns_do(answer->opt_rr)) {
+	if (answer->opt_rr && !knot_edns_do(answer->opt_rr)) {
 		if (rr->type != knot_pkt_qtype(answer) && knot_rrtype_is_dnssec(rr->type)) {
 			return KNOT_STATE_DONE; /* Scrub */
 		}