diff --git a/product/ERP5/Document/BusinessTemplate.py b/product/ERP5/Document/BusinessTemplate.py
index 31afd7070af0a2cf0aedfb66ec1ce6a37f5b91fb..0394ae364750b24a5293fc661380b852756f3c6f 100644
--- a/product/ERP5/Document/BusinessTemplate.py
+++ b/product/ERP5/Document/BusinessTemplate.py
@@ -5050,6 +5050,8 @@ Business Template is a set of definitions, such as skins, portal types and categ
         if self.getBtForDiff():
           item.is_bt_for_diff = 1
         item.build(self)
+      # update _p_jar property of objects cleaned by removeProperties
+      transaction.savepoint(optimistic=True)
 
     def publish(self, url, username=None, password=None):
       """
diff --git a/product/ERP5VCS/WorkingCopy.py b/product/ERP5VCS/WorkingCopy.py
index a4fee5af986c74196e50e177f14f53825ea771f1..a49b7d90530a84c15d504a946c0d132c3fa8c579 100644
--- a/product/ERP5VCS/WorkingCopy.py
+++ b/product/ERP5VCS/WorkingCopy.py
@@ -188,8 +188,6 @@ class WorkingCopy(Implicit):
     if business_template.getBuildingState() == 'draft':
       business_template.edit()
     business_template.build()
-    # XXX: Big hack to make export work as expected.
-    transaction.commit()
     self._export(business_template)
 
   def _export(self, business_template):