diff --git a/product/ERP5/Document/BusinessTemplate.py b/product/ERP5/Document/BusinessTemplate.py
index 4dc46e5363f5e01d46d7a137afb786c315fb44bb..31afd7070af0a2cf0aedfb66ec1ce6a37f5b91fb 100644
--- a/product/ERP5/Document/BusinessTemplate.py
+++ b/product/ERP5/Document/BusinessTemplate.py
@@ -4266,11 +4266,9 @@ class CatalogKeyTemplateItemBase(BaseTemplateItem):
       setattr(catalog, self.key_list_attr, catalog_key_list)
 
   def _getUpdatedCatalogKeyList(self, catalog_key_list, new_key_list):
-    catalog_key_list = list(catalog_key_list) # copy
-    for key in new_key_list:
-      if key not in catalog_key_list:
-        catalog_key_list.append(key)
-    return catalog_key_list
+    catalog_key_set = set(catalog_key_list) # copy
+    catalog_key_set.update(new_key_list)
+    return sorted(catalog_key_set)
 
   def uninstall(self, context, **kw):
     catalog = _getCatalogValue(self)