diff --git a/product/CMFActivity/ActiveObject.py b/product/CMFActivity/ActiveObject.py
index 450dd490a18996d0bbf4f5a244335865fcbbd3df..d2582cc263ca06f9c19833f2c71f31a6b912a149 100755
--- a/product/CMFActivity/ActiveObject.py
+++ b/product/CMFActivity/ActiveObject.py
@@ -42,7 +42,7 @@ class ActiveObject(ExtensionClass.Base):
 
   security = ClassSecurityInfo()
 
-  def activate(self, activity=DEFAULT_ACTIVITY, active_process=None, **kw):
+  def activate(self, activity=DEFAULT_ACTIVITY, active_process=None, passive_commit=0, **kw):
     activity_tool = getattr(self, 'portal_activities', None)
     if activity_tool is None: return self # Do nothing if no portal_activities
     # activate returns an ActiveWrapper
@@ -56,6 +56,7 @@ class ActiveObject(ExtensionClass.Base):
       LOG("WARNING CMFActivity:",0, 'could not create activity for %s' % self.getRelativeUrl())
       # If the portal_activities were not created
       # return a passive object
+      if passive_commit: get_transaction().commit()
       return self
 
   security.declareProtected( CMFCorePermissions.ModifyPortalContent, 'hasActivity' )