diff --git a/libknot/nameserver/name-server.c b/libknot/nameserver/name-server.c
index fff18517e4359ec422d2eb0b7b9fdead346f28c2..6d503e5718ee531801571240d0dc50c30d54e68e 100644
--- a/libknot/nameserver/name-server.c
+++ b/libknot/nameserver/name-server.c
@@ -280,6 +280,9 @@ static void ns_follow_cname(const knot_node_t **node,
 		   wildcard name with qname */
 
 		assert(cname_rrset != NULL);
+		
+		debug_knot_ns("CNAME RRSet: %p, owner: %p\n", cname_rrset,
+			      cname_rrset->owner);
 
 		const knot_rrset_t *rrset = cname_rrset;
 
@@ -291,6 +294,9 @@ static void ns_follow_cname(const knot_node_t **node,
 			knot_packet_add_tmp_rrset(resp,
 			                            (knot_rrset_t *)rrset);
 		}
+		
+		debug_knot_ns("Using RRSet: %p, owner: %p\n", rrset, 
+			      rrset->owner);
 
 		add_rrset_to_resp(resp, rrset, tc, 0, 0);
 		ns_add_rrsigs(rrset, resp, *qname, add_rrset_to_resp, tc);
@@ -303,9 +309,11 @@ DEBUG_KNOT_NS(
 
 		// get the name from the CNAME RDATA
 		const knot_dname_t *cname = knot_rdata_cname_name(
-				knot_rrset_rdata(rrset));
+				knot_rrset_rdata(cname_rrset));
+		debug_knot_ns("CNAME name from RDATA: %p\n", cname);
 		// change the node to the node of that name
-		(*node) = knot_dname_node(cname, 1);
+		*node = knot_dname_node(cname, 1);
+		debug_knot_ns("This name's node: %p\n", *node);
 //		// it is not an old node and if yes, skip it
 //		if (knot_node_is_old(*node)) {
 //			*node = knot_node_new_node(*node);
@@ -1752,9 +1760,11 @@ DEBUG_KNOT_NS(
 		ns_follow_cname(&node, &act_name, resp,
 		                knot_response_add_rrset_answer, 1);
 DEBUG_KNOT_NS(
+		char *name = knot_dname_to_str(node->owner);
 		char *name2 = knot_dname_to_str(act_name);
-		debug_knot_ns("Canonical name: %s, node found: %p\n",
-			 name2, node);
+		debug_knot_ns("Canonical name: %s (%p), node found: %p\n",
+			 name2, act_name, node);
+		debug_knot_ns("The node's owner: %s (%p)\n", name, node->owner);
 		free(name2);
 );
 		qname = act_name;
@@ -1975,7 +1985,7 @@ static int ns_axfr_send_and_clear(knot_ns_xfr_t *xfr)
 
 	// Send the response
 	debug_knot_ns("Sending response (size %zu)..\n", real_size);
-	debug_knot_ns_hex((const char *)xfr->wire, real_size);
+	//debug_knot_ns_hex((const char *)xfr->wire, real_size);
 	int res = xfr->send(xfr->session, &xfr->addr, xfr->wire, real_size);
 	if (res < 0) {
 		debug_knot_ns("Send returned %d\n", res);
@@ -2532,7 +2542,7 @@ int knot_ns_parse_packet(const uint8_t *query_wire, size_t qsize,
 	}
 
 	debug_knot_ns("ns_parse_packet() called with query size %zu.\n", qsize);
-	debug_knot_ns_hex((char *)query_wire, qsize);
+	//debug_knot_ns_hex((char *)query_wire, qsize);
 
 	if (qsize < 2) {
 		return KNOT_EMALF;
@@ -2592,9 +2602,9 @@ int knot_ns_parse_packet(const uint8_t *query_wire, size_t qsize,
 void knot_ns_error_response(knot_nameserver_t *nameserver, uint16_t query_id,
                        uint8_t rcode, uint8_t *response_wire, size_t *rsize)
 {
-	debug_knot_ns("Error response: \n");
-	debug_knot_ns_hex((const char *)nameserver->err_response,
-	             nameserver->err_resp_size);
+	//debug_knot_ns("Error response: \n");
+	//debug_knot_ns_hex((const char *)nameserver->err_response,
+	//             nameserver->err_resp_size);
 
 	memcpy(response_wire, nameserver->err_response,
 	       nameserver->err_resp_size);
@@ -2757,7 +2767,7 @@ int knot_ns_answer_normal(knot_nameserver_t *nameserver, knot_packet_t *query,
 	knot_packet_free(&response);
 
 	debug_knot_ns("Returning response with wire size %zu\n", *rsize);
-	debug_knot_ns_hex((char *)response_wire, *rsize);
+	//debug_knot_ns_hex((char *)response_wire, *rsize);
 
 	return KNOT_EOK;
 }
diff --git a/samples/example.com.zone b/samples/example.com.zone
index 5a1c536a274313d300c95d349b06ea5756a8e6e1..be9549e4706f7e9a2c7386b635a530f98cf50134 100644
--- a/samples/example.com.zone
+++ b/samples/example.com.zone
@@ -66,3 +66,5 @@ sub5	CNAME	sub3
 o	CNAME	a.e.example.com.
 p	CNAME	a.sub.example.com.
 r	CNAME	a.l.example.com.
+*.s	CNAME	s
+s	A	10.1.1.1