diff --git a/lib/layer/iterate.c b/lib/layer/iterate.c
index 2a72c6623cd9e590eb0345ba15322c712e838d1f..7c1b14998fb1c2d56ae72862aaf43f92a07f3c0f 100644
--- a/lib/layer/iterate.c
+++ b/lib/layer/iterate.c
@@ -63,6 +63,7 @@ static bool is_paired_to_query(const knot_pkt_t *answer, struct kr_query *query)
 	const knot_dname_t *qname = minimized_qname(query, &qtype);
 
 	return query->id      == knot_wire_get_id(answer->wire) &&
+	       knot_wire_get_qdcount(answer->wire) > 0 &&
 	       (query->sclass == KNOT_CLASS_ANY || query->sclass  == knot_pkt_qclass(answer)) &&
 	       qtype          == knot_pkt_qtype(answer) &&
 	       knot_dname_is_equal(qname, knot_pkt_qname(answer));
diff --git a/tests/pydnstest/scenario.py b/tests/pydnstest/scenario.py
index 083d27178d9e13cd35b44e0d1d2d56ff7a391fc0..29a40d466d41dab25251a94a228674a94efd28ad 100644
--- a/tests/pydnstest/scenario.py
+++ b/tests/pydnstest/scenario.py
@@ -104,7 +104,9 @@ class Entry:
         answer.use_edns(query.edns, query.ednsflags)
         if 'copy_id' in self.adjust_fields:
             answer.id = query.id
-            answer.question[0].name = query.question[0].name
+            # Copy letter-case if the template has QD
+            if len(answer.question) > 0:
+                answer.question[0].name = query.question[0].name
         if 'copy_query' in self.adjust_fields:
             answer.question = query.question
         return answer
diff --git a/tests/testdata_notimpl/iter_req_qname.rpl b/tests/testdata/iter_req_qname.rpl
similarity index 100%
rename from tests/testdata_notimpl/iter_req_qname.rpl
rename to tests/testdata/iter_req_qname.rpl