diff --git a/src/knot/updates/ddns.c b/src/knot/updates/ddns.c
index c4ea97b905f81669ac8b79b13f580e7558f6c5eb..efe534e2fde1e329f34ba45757dce88314bbd962 100644
--- a/src/knot/updates/ddns.c
+++ b/src/knot/updates/ddns.c
@@ -429,8 +429,8 @@ static bool should_replace(const knot_rrset_t *chg_rrset,
 	}
 }
 
-static int knot_ddns_check_add_rr(knot_changeset_t *changeset,
-                                  knot_rrset_t *rr)
+static bool skip_record_addition(knot_changeset_t *changeset,
+                                 knot_rrset_t *rr)
 {
 	knot_rr_ln_t *rr_node = NULL;
 	WALK_LIST(rr_node, changeset->remove) {
@@ -438,14 +438,14 @@ static int knot_ddns_check_add_rr(knot_changeset_t *changeset,
 		if (should_replace(rr, rrset)) {
 			knot_rrset_free(&rrset, NULL);
 			rrset = rr;
-			return KNOT_EOK;
+			return true;
 		} else if (knot_rrset_equal(rr, rrset, KNOT_RRSET_COMPARE_WHOLE)) {
 			knot_rrset_free(&rr, NULL);
-			return KNOT_EOK;
+			return true;
 		}
 	}
 
-	return knot_changeset_add_rrset(changeset, rr, KNOT_CHANGESET_ADD);
+	return false;
 }
 
 static int add_rr_to_chgset(const knot_rrset_t *rr, knot_changeset_t *changeset)
@@ -455,7 +455,11 @@ static int add_rr_to_chgset(const knot_rrset_t *rr, knot_changeset_t *changeset)
 		return KNOT_ENOMEM;
 	}
 
-	return knot_ddns_check_add_rr(changeset, rr_copy);
+	if (skip_record_addition(changeset, rr_copy)) {
+		return KNOT_EOK;
+	}
+
+	return knot_changeset_add_rrset(changeset, rr_copy, KNOT_CHANGESET_ADD);
 }
 
 static bool skip_record_removal(knot_changeset_t *changeset, knot_rrset_t *rr)
@@ -500,6 +504,7 @@ static int rem_rr_to_chgset(const knot_rrset_t *rr, knot_changeset_t *changeset,
 	if (apex_ns_rem) {
 		(*apex_ns_rem)++;
 	}
+
 	return knot_changeset_add_rrset(changeset, rr_copy, KNOT_CHANGESET_REMOVE);
 }