diff --git a/catalog/src/main/java/org/killbill/billing/catalog/CatalogUpdater.java b/catalog/src/main/java/org/killbill/billing/catalog/CatalogUpdater.java
index 684e21e..dd0dcfd 100644
--- a/catalog/src/main/java/org/killbill/billing/catalog/CatalogUpdater.java
+++ b/catalog/src/main/java/org/killbill/billing/catalog/CatalogUpdater.java
@@ -175,7 +175,17 @@ public class CatalogUpdater {
if (desc.getProductCategory() == ProductCategory.ADD_ON) {
for (final String bp : desc.getAvailableBaseProducts()) {
- catalog.addProductAvailableAO(getExistingProduct(bp), product);
+ final DefaultProduct targetBasePlan = getExistingProduct(bp);
+ boolean found = false;
+ for (DefaultProduct cur : targetBasePlan.getAvailable()) {
+ if (cur.getName().equals(product.getName())) {
+ found = true;
+ break;
+ }
+ }
+ if (!found) {
+ catalog.addProductAvailableAO(getExistingProduct(bp), product);
+ }
}
}