diff --git a/mpcdf_common.py b/mpcdf_common.py
index c01bb4717256a41a103029799dbb5e0367efca52..10ef7f13f0fa36004a62e36fba41be582a8ef758 100644
--- a/mpcdf_common.py
+++ b/mpcdf_common.py
@@ -211,13 +211,17 @@ def mpcdf_enable_repositories(api_url, project, package, verbose=False, filter_r
     if filter_repos is None:
         filter_repos = ()
 
-    root = package_meta(api_url, project, package)
+    pkg_meta = osc.core.show_package_meta(api_url, project, package)
+    root = ElementTree.fromstringlist(pkg_meta)
+
     build = root.find("./build")
     if build is None:
         build = ElementTree.SubElement(root, "build")
-    else:
-        for enable in build.findall("./enable"):
-            build.remove(enable)
+
+    pkg_meta = ElementTree.tostring(root, encoding=osc.core.ET_ENCODING)
+
+    for enable in build.findall("./enable"):
+        build.remove(enable)
 
     try:
         enable_repos = get_attribute_values(api_url, project, package, "MPCDF:enable_repositories")
@@ -332,9 +336,10 @@ def mpcdf_enable_repositories(api_url, project, package, verbose=False, filter_r
     if len(build.getchildren()) > 0:
         build.getchildren()[-1].tail = "\n  "
 
-    pkg_meta = ElementTree.tostring(root, encoding=osc.core.ET_ENCODING)
+    new_pkg_meta = ElementTree.tostring(root, encoding=osc.core.ET_ENCODING)
+    if pkg_meta != new_pkg_meta:
+        osc.core.edit_meta("pkg", (project, package), data=new_pkg_meta)
 
-    osc.core.edit_meta("pkg", (project, package), data=pkg_meta)
     return True