diff --git a/src/knot/updates/ddns.c b/src/knot/updates/ddns.c
index c2a8843732895ad453b0bbb8431c4e7cc56f8d2e..ca0dbdc59e0c0d3c27c67232b4d5074064af05fc 100644
--- a/src/knot/updates/ddns.c
+++ b/src/knot/updates/ddns.c
@@ -1018,8 +1018,9 @@ int ddns_process_update(const zone_t *zone, const knot_pkt_t *query,
 			return KNOT_ENOMEM;
 		}
 
-		int new_serial = zone_contents_next_serial(zone->contents,
-		                                           zone->conf->serial_policy);
+		uint32_t new_serial =
+			zone_contents_next_serial(zone->contents,
+		                                  zone->conf->serial_policy);
 		knot_soa_serial_set(&soa_cpy->rrs, new_serial);
 		changeset_add_soa(changeset, soa_cpy, CHANGESET_ADD);
 	}
diff --git a/src/libknot/rrset.c b/src/libknot/rrset.c
index 56bef5c9d584605e3c08f65cedbae7b635f8d508..254d5dcd05a8ebc6c50c25d30ef304beb39364c7 100644
--- a/src/libknot/rrset.c
+++ b/src/libknot/rrset.c
@@ -571,18 +571,14 @@ bool knot_rrset_equal(const knot_rrset_t *r1,
 		return r1 == r2;
 	}
 
-	if (knot_rrset_empty(r1)) {
-		return knot_rrset_empty(r2);
-	} else if (knot_rrset_empty(r2)) {
-		return knot_rrset_empty(r1);
-	}
-
 	if (r1->type != r2->type) {
 		return false;
 	}
 
-	if (!knot_dname_is_equal(r1->owner, r2->owner)) {
-		return false;
+	if (r1->owner && r2->owner) {
+		if (!knot_dname_is_equal(r1->owner, r2->owner)) {
+			return false;
+		}
 	}
 
 	if (cmp == KNOT_RRSET_COMPARE_WHOLE) {