diff --git a/src/knot/nameserver/update.c b/src/knot/nameserver/update.c
index a58b18d9efe03d2bc60eba3519d46e25c4e28162..99f1d71721f92b0c919031d12f493eeba127d53b 100644
--- a/src/knot/nameserver/update.c
+++ b/src/knot/nameserver/update.c
@@ -118,11 +118,6 @@ static bool apex_rr_changed(const zone_contents_t *old_contents,
 {
 	knot_rrset_t old_rr = node_rrset(old_contents->apex, type);
 	knot_rrset_t new_rr = node_rrset(new_contents->apex, type);
-	if (knot_rrset_empty(&old_rr)) {
-		return !knot_rrset_empty(&new_rr);
-	} else if (knot_rrset_empty(&new_rr)) {
-		return !knot_rrset_empty(&old_rr);
-	}
 
 	return !knot_rrset_equal(&old_rr, &new_rr, KNOT_RRSET_COMPARE_WHOLE);
 }
diff --git a/src/libknot/rrset.c b/src/libknot/rrset.c
index f5144783d651ae1951e2a4abca5767f15e405f92..56bef5c9d584605e3c08f65cedbae7b635f8d508 100644
--- a/src/libknot/rrset.c
+++ b/src/libknot/rrset.c
@@ -571,6 +571,12 @@ 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;
 	}