diff --git a/tests/testdata/nsec3_wildcard_no_data_response.rpl b/tests/testdata/nsec3_wildcard_no_data_response.rpl
new file mode 100644
index 0000000000000000000000000000000000000000..8199ad7d89551950003d9055dd12cfc73b690449
--- /dev/null
+++ b/tests/testdata/nsec3_wildcard_no_data_response.rpl
@@ -0,0 +1,248 @@
+; config options
+server:
+	trust-anchor: ". 3600 IN DS 17272 13 4 B87AD8C76DC2244E7AA57285057BF533F2E248CC8D7E1A071D8A3837A711A5EA705C4707E6E8911DA653BE1AE019927B"
+	val-override-date: "1442839270"
+
+stub-zone:
+	name: "."
+	stub-addr: 127.0.0.1 	# ns.
+CONFIG_END
+
+SCENARIO_BEGIN Test validation of NSEC3 name error responses.
+
+; ns.
+RANGE_BEGIN 0 100
+	ADDRESS 127.0.0.1
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+. IN NS
+SECTION ANSWER
+.                       3600    IN      NS      ns.
+.                       3600    IN      RRSIG   NS 13 0 3600 20151014142315 20150914142315 17272 . aEIYUS4S8Hd7vAVYvHwFyV97lKx4xt2PgAUbM4A7JUXHkTJDHUQEDVQh LWGxK6e+AUeuq4qlDo4vSz3IedmOBQ==
+SECTION ADDITIONAL
+ns.                     3600    IN      A       127.0.0.1
+ns.                     3600    IN      RRSIG   A 13 1 3600 20151014142315 20150914142315 17272 . 27h0pFJyb5t/2cZsFjynp0TRIdUlQwPYcAwCer2UbXTiBBaD8n15hfh8 PFU0if8X0ikqHusz6rCNTx/aBraYdQ==
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+. IN DNSKEY
+SECTION ANSWER
+.                       3600    IN      DNSKEY  256 3 13 qKlBZ0TvdY8C8+7bTcdnQdrLZxEwvxEwlGmIOTd/ccL5Jiei1whNktoE /Qzo1lJ0cXfVssy4EVMaqEdzIa+pkA==
+.                       3600    IN      RRSIG   DNSKEY 13 0 3600 20151014142315 20150914142315 17272 . FaY+kslqSPIRZsk65z8SrROt7kfx+RGUEBGbVgLQxKruJxc9+MMrl4e4 +RefYIlwpecj4jXwb75RTbT0g7OGGg==
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+aaa.local.nsec3.example. IN CNAME
+SECTION AUTHORITY
+example.                3600    IN      NS      ns.example.
+example.                3600    IN      DS      11225 13 4 B4BDAB0B3751300BFB9D0D240649279B4BA0E67A308E1B0BFE2931D9 47F7FD71A2BD807D84CDE24286D955A35752484F
+example.                3600    IN      RRSIG   DS 13 1 3600 20151014143533 20150914143533 17272 . b0+fXKmsBBXkzf+Myr5eRsXWDvY75oMlr4Yi5j+3iF7cOviVGKz3Dw8u bfKW+OmyHiuTeL71gez/84P+vHEvHA==
+SECTION ADDITIONAL
+ns.example.             3600    IN      A       127.0.0.2
+ENTRY_END
+
+RANGE_END
+
+; ns.example.
+RANGE_BEGIN 0 100
+	ADDRESS 127.0.0.2
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+example. IN NS
+SECTION ANSWER
+example.                3600    IN      NS      ns.example.
+example.                3600    IN      RRSIG   NS 13 1 3600 20151014143225 20150914143225 11225 example. C6KOyVJzeRh/3KL9BxSVOVZN0RIyBhlBmmmnVEFT5qPUrn3m5FjcIBtI hi7cAl2FeY1rqstztvKAY6UOBE0kGQ==
+SECTION ADDITIONAL
+ns.example.             3600    IN      A       127.0.0.2
+ns.example.             3600    IN      RRSIG   A 13 2 3600 20151014143225 20150914143225 11225 example. fM/mwUOtyIbKTxgxaekZf5A8kV3qYIFADtvhcQi0TUh09nfkHQtUqhew zVBXCEtjKMnYFvNhWF6PyiirtOeM8w==
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+example. IN DNSKEY
+SECTION ANSWER
+example.                3600    IN      DNSKEY  256 3 13 d9Qb4Tj90Y2cvdWcZfu45clfoLKqGbJn2vQKqZv07nc4FMf2oRkrNXtP fixVTLfbbWAFtbbFf3mhCNUsetRUVQ==
+example.                3600    IN      RRSIG   DNSKEY 13 1 3600 20151015124839 20150915124839 11225 example. 4DemFjvys9Gfq+gG1i8IB6GPBUw9lIv3F082JwW7O8tqNIn45n2z14gg ieeJTRhU9xXOVIfj6amITZWbjvGyFA==
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+aaa.local.nsec3.example. IN CNAME
+SECTION AUTHORITY
+nsec3.example.          3600    IN      NS      ns.nsec3.example.
+nsec3.example.          3600    IN      DS      29913 13 4 9CCAE2E2369F5CE2725B0CCED256E746D4CB8CDA8A1A936C852A3810 1680F6F0D311476C891A5107DEA71165F72DAD01
+nsec3.example.          3600    IN      RRSIG   DS 13 2 3600 20151015124611 20150915124611 11225 example. Ur24uOPBVJV8dXlVzsEYq50QDzsKgzwdQ197/JR1Pjpo6hm+Q5qqGN5v TP57rCIDvqNY0L7ZnYjFDa1HlUie1A==
+SECTION ADDITIONAL
+ns.nsec3.example.        3600    IN      A       127.0.0.3
+ENTRY_END
+
+RANGE_END
+
+; ns.nsec3.example.
+RANGE_BEGIN 0 100
+	ADDRESS 127.0.0.3
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+nsec3.example. IN NS
+SECTION ANSWER
+nsec3.example.          3600    IN      NS      ns.nsec3.example.
+nsec3.example.          3600    IN      RRSIG   NS 13 2 3600 20151015124917 20150915124917 29913 nsec3.example. 5CtvbOiUnPE4yVM9tRDWAjHT0X1X5M8tTez1ZkGVd+c9iwwX+PJV+tWW Q40UIqMVEDW1BG39uzGi82XINdvt4Q==
+SECTION ADDITIONAL
+ns.nsec3.example.       3600    IN      A       127.0.0.3
+ns.nsec3.example.       3600    IN      AAAA    ::3
+ns.nsec3.example.       3600    IN      RRSIG   A 13 3 3600 20151015124917 20150915124917 29913 nsec3.example. CYnl5b4taGLcGp2cZhlB93zbf4CfAEQPVBJVKQXIHlGCshMdakBKCJ5a o9wB+HfnA6VW0/2YgKxdv3j45qVWwQ==
+ns.nsec3.example.       3600    IN      RRSIG   AAAA 13 3 3600 20151015124917 20150915124917 29913 nsec3.example. OVKZYrbuwz46eXMt3HMsu3WICcloYkok26g4lbTY/4nslnwluiE7rFEX r5EI9MSt4fF82cghN5McnkjHLhI+rw==
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+nsec3.example. IN DNSKEY
+SECTION ANSWER
+nsec3.example.          3600    IN      DNSKEY  256 3 13 p2ZjJQmvVGYMkFIzttVodmLNuxBqSbIjk/U9vsiWjWkYhgAHbCVDyH2I rKx3aqidW7Wnuaj//zDrXGxKu99WPQ==
+nsec3.example.          3600    IN      RRSIG   DNSKEY 13 2 3600 20151015124917 20150915124917 29913 nsec3.example. M+WnKqDgEcgKxWi6n6hEKm61/OOqeZXVUOj+v8v9pRA/Kp0XVWL5G+hc tbQgGaUv7OFV5doYEI5XwuMazHzumg==
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+local.nsec3.example. IN NS
+SECTION AUTHORITY
+nsec3.example.          3600    IN      SOA     ns.nsec3.example. root.nsec3.example. 6 60 60 120 3600
+ivmjat46u4s0qgn5ouqtsut9mtut0230.nsec3.example. 3600 IN NSEC3 1 0 10 ED699434FF4B1D16 Q1VKA08M8TAP08SMQN0BU8HAI8BU51NB 
+nsec3.example.          3600    IN      RRSIG   SOA 13 2 3600 20151017113144 20150917113144 29913 nsec3.example. iO305HC3tic/x7noFt0JdWr33fcm7ZE3+s4OGXslAA0e47bMlyZnJ0Mu 6WCRNSSq11ZBDuGWTDnqx09YiXHFBw==
+ivmjat46u4s0qgn5ouqtsut9mtut0230.nsec3.example. 3600 IN RRSIG NSEC3 13 3 3600 20151015124917 20150915124917 29913 nsec3.example. YAAp004WrK5E/tgiq93/5UUx4Ze8mHibu3is2jogALKFsRbJPvYcbUoR AQu9KNK/ym2Mjk9VShNSSQPjtqrdVQ==
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+aaa.local.nsec3.example. IN CNAME
+SECTION AUTHORITY
+nsec3.example.          3600    IN      SOA     ns.nsec3.example. root.nsec3.example. 6 60 60 120 3600
+ivmjat46u4s0qgn5ouqtsut9mtut0230.nsec3.example. 3600 IN NSEC3 1 0 10 ED699434FF4B1D16 Q1VKA08M8TAP08SMQN0BU8HAI8BU51NB 
+7vgf2jrlb1lros7vfcd14uqctlh2selh.nsec3.example. 3600 IN NSEC3 1 0 10 ED699434FF4B1D16 CNMT1N5RMPKOL8DOHQ4ATJ62468PLNU6 A AAAA RRSIG
+nsec3.example.          3600    IN      RRSIG   SOA 13 2 3600 20151017113144 20150917113144 29913 nsec3.example. iO305HC3tic/x7noFt0JdWr33fcm7ZE3+s4OGXslAA0e47bMlyZnJ0Mu 6WCRNSSq11ZBDuGWTDnqx09YiXHFBw==
+ivmjat46u4s0qgn5ouqtsut9mtut0230.nsec3.example. 3600 IN RRSIG NSEC3 13 3 3600 20151015124917 20150915124917 29913 nsec3.example. YAAp004WrK5E/tgiq93/5UUx4Ze8mHibu3is2jogALKFsRbJPvYcbUoR AQu9KNK/ym2Mjk9VShNSSQPjtqrdVQ==
+7vgf2jrlb1lros7vfcd14uqctlh2selh.nsec3.example. 3600 IN RRSIG NSEC3 13 3 3600 20151017113144 20150917113144 29913 nsec3.example. AXFTisbCKigPpK4JLsb3QWwKr5Qd2KucDxowUvY+ycLcH9Z6VjTE4KXu 3YKIFo1Sy9uBYzNfgMEjkCDPwPZDHg==
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+bbb1.local.nsec3.example. IN CNAME
+SECTION AUTHORITY
+nsec3.example.          3600    IN      SOA     ns.nsec3.example. root.nsec3.example. 6 60 60 120 3600
+7vgf2jrlb1lros7vfcd14uqctlh2selh.nsec3.example. 3600 IN NSEC3 1 0 10 ED699434FF4B1D16 CNMT1N5RMPKOL8DOHQ4ATJ62468PLNU6 A AAAA RRSIG
+nsec3.example.          3600    IN      RRSIG   SOA 13 2 3600 20151017113144 20150917113144 29913 nsec3.example. iO305HC3tic/x7noFt0JdWr33fcm7ZE3+s4OGXslAA0e47bMlyZnJ0Mu 6WCRNSSq11ZBDuGWTDnqx09YiXHFBw==
+7vgf2jrlb1lros7vfcd14uqctlh2selh.nsec3.example. 3600 IN RRSIG NSEC3 13 3 3600 20151017113144 20150917113144 29913 nsec3.example. AXFTisbCKigPpK4JLsb3QWwKr5Qd2KucDxowUvY+ycLcH9Z6VjTE4KXu 3YKIFo1Sy9uBYzNfgMEjkCDPwPZDHg==
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+bbb11.local.nsec3.example. IN CNAME
+SECTION AUTHORITY
+nsec3.example.          3600    IN      SOA     ns.nsec3.example. root.nsec3.example. 6 60 60 120 3600
+ivmjat46u4s0qgn5ouqtsut9mtut0230.nsec3.example. 3600 IN NSEC3 1 0 10 ED699434FF4B1D16 Q1VKA08M8TAP08SMQN0BU8HAI8BU51NB 
+nsec3.example.          3600    IN      RRSIG   SOA 13 2 3600 20151017113144 20150917113144 29913 nsec3.example. iO305HC3tic/x7noFt0JdWr33fcm7ZE3+s4OGXslAA0e47bMlyZnJ0Mu 6WCRNSSq11ZBDuGWTDnqx09YiXHFBw==
+ivmjat46u4s0qgn5ouqtsut9mtut0230.nsec3.example. 3600 IN RRSIG NSEC3 13 3 3600 20151015124917 20150915124917 29913 nsec3.example. YAAp004WrK5E/tgiq93/5UUx4Ze8mHibu3is2jogALKFsRbJPvYcbUoR AQu9KNK/ym2Mjk9VShNSSQPjtqrdVQ==
+ENTRY_END
+
+RANGE_END
+
+;STEP 0 TIME_PASSES ELAPSE 1000
+
+STEP 1 QUERY
+ENTRY_BEGIN
+REPLY RD DO
+SECTION QUESTION
+aaa.local.nsec3.example. IN CNAME
+ENTRY_END
+
+; recursion happens here.
+STEP 2 CHECK_ANSWER
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR RD RA AD NOERROR
+SECTION QUESTION
+aaa.local.nsec3.example. IN CNAME
+SECTION AUTHORITY
+nsec3.example.          3600    IN      SOA     ns.nsec3.example. root.nsec3.example. 6 60 60 120 3600
+ivmjat46u4s0qgn5ouqtsut9mtut0230.nsec3.example. 3600 IN NSEC3 1 0 10 ED699434FF4B1D16 Q1VKA08M8TAP08SMQN0BU8HAI8BU51NB 
+7vgf2jrlb1lros7vfcd14uqctlh2selh.nsec3.example. 3600 IN NSEC3 1 0 10 ED699434FF4B1D16 CNMT1N5RMPKOL8DOHQ4ATJ62468PLNU6 A AAAA RRSIG
+nsec3.example.          3600    IN      RRSIG   SOA 13 2 3600 20151017113144 20150917113144 29913 nsec3.example. iO305HC3tic/x7noFt0JdWr33fcm7ZE3+s4OGXslAA0e47bMlyZnJ0Mu 6WCRNSSq11ZBDuGWTDnqx09YiXHFBw==
+ivmjat46u4s0qgn5ouqtsut9mtut0230.nsec3.example. 3600 IN RRSIG NSEC3 13 3 3600 20151015124917 20150915124917 29913 nsec3.example. YAAp004WrK5E/tgiq93/5UUx4Ze8mHibu3is2jogALKFsRbJPvYcbUoR AQu9KNK/ym2Mjk9VShNSSQPjtqrdVQ==
+7vgf2jrlb1lros7vfcd14uqctlh2selh.nsec3.example. 3600 IN RRSIG NSEC3 13 3 3600 20151017113144 20150917113144 29913 nsec3.example. AXFTisbCKigPpK4JLsb3QWwKr5Qd2KucDxowUvY+ycLcH9Z6VjTE4KXu 3YKIFo1Sy9uBYzNfgMEjkCDPwPZDHg==
+ENTRY_END
+
+STEP 3 QUERY
+ENTRY_BEGIN
+REPLY RD DO
+SECTION QUESTION
+bbb1.local.nsec3.example. IN CNAME
+ENTRY_END
+
+STEP 4 CHECK_ANSWER
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR RD RA AD SERVFAIL
+SECTION QUESTION
+bbb1.local.nsec3.example. IN CNAME
+ENTRY_END
+
+STEP 5 QUERY
+ENTRY_BEGIN
+REPLY RD DO
+SECTION QUESTION
+bbb11.local.nsec3.example. IN CNAME
+ENTRY_END
+
+STEP 6 CHECK_ANSWER
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR RD RA AD SERVFAIL
+SECTION QUESTION
+bbb11.local.nsec3.example. IN CNAME
+ENTRY_END
+
+SCENARIO_END
diff --git a/tests/testdata/nsec_wildcard_no_data_response.rpl b/tests/testdata/nsec_wildcard_no_data_response.rpl
index 5e9d2039d12f3f5f93559075e1b413237b0472ec..43fcfb4c7ed142751c1a0770444fa5d3fa08f20e 100644
--- a/tests/testdata/nsec_wildcard_no_data_response.rpl
+++ b/tests/testdata/nsec_wildcard_no_data_response.rpl
@@ -135,7 +135,7 @@ ADJUST copy_id
 REPLY QR AA NOERROR
 SECTION QUESTION
 local.nsec.example. IN NS
-SECTION ADDITIONAL
+SECTION AUTHORITY
 nsec.example.           3600    IN      SOA     ns.nsec.example. root.nsec.example. 6 60 60 120 3600
 alias.nsec.example.     3600    IN      NSEC    *.local.nsec.example. CNAME RRSIG NSEC
 nsec.example.           3600    IN      RRSIG   SOA 13 2 3600 20151017113144 20150917113144 54343 nsec.example. /3orb3cezQbBCZsFP9rx6Col9AB2QxHQtzQ32BYe09MfN7YZxtTE/HZJ aSXGWD3D7sLBdEkg8TGP8JPQtbW2yQ==