diff --git a/examples/dns.c b/examples/dns.c
index e38a2b47f0995372050d52a3890c45f969433e2f..d786d59776f6ba410cf6672d5297246fd2d92787 100644
--- a/examples/dns.c
+++ b/examples/dns.c
@@ -335,8 +335,7 @@ const HParsedToken* act_message(const HParseResult *p) {
   struct dns_question *questions = h_arena_malloc(p->arena,
 						  sizeof(struct dns_question)*(header->question_count));
   for (size_t i=0; i<header->question_count; ++i) {
-    assert(qs->seq->elements[i]->token_type == (HTokenType)TT_dns_question);
-    questions[i] = *(dns_question_t *)qs->seq->elements[i]->user;
+    questions[i] = *H_SEQ_INDEX(dns_question, qs, i);
   }
   msg->questions = questions;