diff --git a/src/knot/dnssec/zone-sign.c b/src/knot/dnssec/zone-sign.c
index 8ad81662146796bb6ddf89bdaf9876bf74438add..3ad1ea9be0687d359ee30fad90073c9536c0b608 100644
--- a/src/knot/dnssec/zone-sign.c
+++ b/src/knot/dnssec/zone-sign.c
@@ -762,6 +762,7 @@ static int remove_invalid_dnskeys(const knot_rrset_t *soa,
 
 	uint16_t dnskeys_rdata_count = dnskeys->rrs.rr_count;
 	for (uint16_t i = 0; i < dnskeys_rdata_count; i++) {
+		dnskeys_data = knot_rdataset_at(&dnskeys->rrs, i);
 		uint8_t *rdata = knot_rdata_data(dnskeys_data);
 		uint16_t rdata_size = knot_rdata_rdlen(dnskeys_data);
 		uint16_t keytag = knot_keytag(rdata, rdata_size);
diff --git a/tests-extra/tests/chaos/ident/test.py b/tests-extra/tests/chaos/ident/test.py
index 7ec288e91b7207be20d92653a921f2755bfc59b3..2f073ddabdde692ef2cf5d381b522ef7514da3a2 100644
--- a/tests-extra/tests/chaos/ident/test.py
+++ b/tests-extra/tests/chaos/ident/test.py
@@ -3,7 +3,6 @@
 '''Test for server identification over CH/TXT'''
 
 from dnstest.test import Test
-import socket
 
 t = Test()
 
@@ -25,7 +24,7 @@ resp.check('"' + name + '"')
 
 # 2) FQDN hostname.
 resp = server2.dig("id.server", "TXT", "CH")
-resp.check(socket.gethostname())
+resp.check(t.hostname)
 
 # 3) Explicitly disabled.
 resp = server3.dig("id.server", "TXT", "CH")
diff --git a/tests-extra/tests/edns/nsid/test.py b/tests-extra/tests/edns/nsid/test.py
index d55b37dfc8d38d44040c8eb9dd54fae8f66adc12..cd5e0897909849fdf432ec1377c2bb355ebd19c0 100644
--- a/tests-extra/tests/edns/nsid/test.py
+++ b/tests-extra/tests/edns/nsid/test.py
@@ -3,7 +3,6 @@
 '''Test for EDNS0/NSID identification'''
 
 from dnstest.test import Test
-import socket
 
 t = Test()
 
@@ -30,7 +29,7 @@ resp.check_edns(nsid=name)
 
 # 2) FQDN hostname.
 resp = server2.dig("example.com", "SOA", nsid=True)
-resp.check_edns(nsid=socket.gethostname())
+resp.check_edns(nsid=t.hostname)
 
 # 3) Explicitly disabled.
 resp = server3.dig("example.com", "SOA", nsid=True)
diff --git a/tests-extra/tools/dnstest/test.py b/tests-extra/tools/dnstest/test.py
index 3d9192712c0d290074fe5e7fc9033022e87a4d37..4b59c5102e941c1c121c0ede42ea605171c567cb 100644
--- a/tests-extra/tools/dnstest/test.py
+++ b/tests-extra/tools/dnstest/test.py
@@ -88,6 +88,13 @@ class Test(object):
         Test.last_port = port
         return port
 
+    @property
+    def hostname(self):
+        hostname = socket.gethostname()
+        addrinfo = socket.getaddrinfo(hostname, 0, socket.AF_UNSPEC,
+                                      socket.SOCK_DGRAM, 0, socket.AI_CANONNAME)
+        return addrinfo[0][3] if addrinfo else hostname
+
     def server(self, server, nsid=None, ident=None, version=None, \
                valgrind=None):
         if server == "knot":