diff --git a/src/libknot/dnssec/zone-sign.c b/src/libknot/dnssec/zone-sign.c
index 37103a68fc4545dd714722b6edde032cef273ce4..403ef1a5e69f1919b64c899ab76ab606a9e9ae4e 100644
--- a/src/libknot/dnssec/zone-sign.c
+++ b/src/libknot/dnssec/zone-sign.c
@@ -1059,7 +1059,8 @@ static int clear_helper_trie(hattrie_t *t)
 		list_t *l = (list_t *)hattrie_iter_val(it);
 		assert(l);
 		node_t *n = NULL;
-		WALK_LIST_FIRST(n, *l) {
+		node_t *nxt = NULL;
+		WALK_LIST_DELSAFE(n, nxt, *l) {
 			free(n);
 		}