diff --git a/lib/zonecut.c b/lib/zonecut.c
index ed6350670211550eafafab3794b9621dcc79071c..032a2e4bcf41e09ec8d1f04fedb63bf64a9ce4e2 100644
--- a/lib/zonecut.c
+++ b/lib/zonecut.c
@@ -417,6 +417,8 @@ int kr_zonecut_find_cached(struct kr_context *ctx, struct kr_zonecut *cut, const
 			update_cut_name(cut, label);
 			mm_free(cut->pool, qname);
 			return kr_ok();
+		} else { /* Clear TA, as it is below any known NS. */
+			knot_rrset_free(&cut->trust_anchor, cut->pool);
 		}
 		/* Subtract label from QNAME. */
 		if (!is_root) {