diff --git a/src/libknot/zone/zone-contents.c b/src/libknot/zone/zone-contents.c
index 97ebbd5080d61eb7e7941e9cb43cd9570bd33079..9a94c88a70191d6344481b23fc83933060069946 100644
--- a/src/libknot/zone/zone-contents.c
+++ b/src/libknot/zone/zone-contents.c
@@ -144,13 +144,12 @@ static int knot_zone_contents_nsec3_name(const knot_zone_contents_t *zone,
 		return KNOT_ENSEC3PAR;
 	}
 
-	const knot_dname_t *apex_name = knot_node_owner(
-	                        knot_zone_contents_apex(zone));
+	const char *apex_name = knot_dname_to_str(knot_node_owner(
+					knot_zone_contents_apex(zone)));
 	assert(apex_name);
 
-	*nsec3_name = create_nsec3_owner(name, nsec3_params,
-	                                 (const char *)apex_name,
-	                                 knot_dname_size(apex_name));
+	*nsec3_name = create_nsec3_owner(name, nsec3_params, apex_name,
+	                                 strlen(apex_name));
 	if (nsec3_name == NULL) {
 		return KNOT_ERROR;
 	}