diff --git a/src/dnslib/zone.c b/src/dnslib/zone.c
index 5d5a70ea2d5afcab7ac3c7af9cec824d374661d5..e162fa6e88d3ab86ac0a67baf95c69ef2836b22e 100644
--- a/src/dnslib/zone.c
+++ b/src/dnslib/zone.c
@@ -188,7 +188,7 @@ static void dnslib_zone_adjust_node_in_tree(dnslib_node_t *node, void *data)
 /* API functions                                                              */
 /*----------------------------------------------------------------------------*/
 
-dnslib_zone_t *dnslib_zone_new(dnslib_node_t *apex)
+dnslib_zone_t *dnslib_zone_new(dnslib_node_t *apex, uint node_count)
 {
 	if (apex == NULL) {
 		return NULL;
@@ -215,6 +215,8 @@ dnslib_zone_t *dnslib_zone_new(dnslib_node_t *apex)
 		return NULL;
 	}
 
+	zone->node_count = node_count;
+
 	TREE_INIT(zone->tree, dnslib_node_compare);
 	TREE_INIT(zone->nsec3_nodes, dnslib_node_compare);
 
diff --git a/src/dnslib/zone.h b/src/dnslib/zone.h
index 992491c0525fad58a165f6cafb3f16a72f211f38..66f6ee939d1a840d41468841278b2c20ba7b4853 100644
--- a/src/dnslib/zone.h
+++ b/src/dnslib/zone.h
@@ -44,10 +44,11 @@ typedef struct dnslib_zone dnslib_zone_t;
  * \brief Creates new DNS zone.
  *
  * \param apex Node representing the zone apex.
+ * \param node_count Number of authorative nodes in the zone.
  *
  * \return The initialized zone structure or NULL if an error occured.
  */
-dnslib_zone_t *dnslib_zone_new(dnslib_node_t *apex);
+dnslib_zone_t *dnslib_zone_new(dnslib_node_t *apex, uint node_count);
 
 /*!
  * \brief Adds a node to the given zone.
diff --git a/src/tests/dnslib/dnslib_zone_tests.c b/src/tests/dnslib/dnslib_zone_tests.c
index 220a0e2790eda68b4ea8dbb6a815c71bf01abd9e..cc42a262303499a9afe91c7d738941c938f2463b 100644
--- a/src/tests/dnslib/dnslib_zone_tests.c
+++ b/src/tests/dnslib/dnslib_zone_tests.c
@@ -63,7 +63,7 @@ static int test_zone_create(dnslib_zone_t **zone)
 		return 0;
 	}
 
-	*zone = dnslib_zone_new(node);
+	*zone = dnslib_zone_new(node, 0);
 
 	if ((*zone) == NULL) {
 		diag("zone: Failed to create zone.");