diff --git a/lib/layer/iterate.c b/lib/layer/iterate.c
index 865ded6c114bd678a50410729900533f1ecaca20..d7cdb289c4232264423ec6c1765d3bfa2add9c87 100644
--- a/lib/layer/iterate.c
+++ b/lib/layer/iterate.c
@@ -87,7 +87,7 @@ static bool is_paired_to_query(const knot_pkt_t *answer, struct kr_query *query)
 	/* Construct expected randomized QNAME */
 	uint8_t qname[KNOT_DNAME_MAXLEN];
 	knot_dname_to_wire(qname, qname_min, sizeof(qname));
-	if (!(query->flags & QUERY_CACHED)) {
+	if (!(query->flags & (QUERY_CACHED|QUERY_SAFEMODE))) {
 		randomized_qname_case(qname, query->secret);
 	}
 
diff --git a/modules/block/block.lua b/modules/block/block.lua
index 348471e3bcea1e3ccb3154ae296e344e3d450762..776f25364a036121d3348994a5a91f99b0bea3ad 100644
--- a/modules/block/block.lua
+++ b/modules/block/block.lua
@@ -108,7 +108,7 @@ block.layer = {
 			-- Answer full question
 			local qclass = kres.query_qclass(qry)
 			local qtype = kres.query_qtype(qry)
-			kres.query_flag(qry, kres.query.NO_MINIMIZE)
+			kres.query_flag(qry, kres.query.NO_MINIMIZE + kres.query.SAFEMODE)
 			pkt:question(qname, qclass, qtype)
 			pkt:flag(kres.wire.QR)
 			pkt:flag(kres.wire.AA)