diff --git a/config/alfresco/messages/patch-service.properties b/config/alfresco/messages/patch-service.properties
index cf96de937c..00ed868ae9 100644
--- a/config/alfresco/messages/patch-service.properties
+++ b/config/alfresco/messages/patch-service.properties
@@ -255,3 +255,6 @@ patch.invitationMigration.no_invites=No invitations require migrating old invite
patch.webSiteAddModerated.description=Changing Web Site visibility from a boolean to enum.
patch.webSiteAddModerated.result=Changed Web Site visibility.
+
+patch.mtShareExistingTenants.description=Update existing tenants for MT Share.
+patch.mtShareExistingTenants.result=Update existing tenants for MT Share.
diff --git a/config/alfresco/patch/patch-services-context.xml b/config/alfresco/patch/patch-services-context.xml
index dccc441e81..5f55fbfdbb 100644
--- a/config/alfresco/patch/patch-services-context.xml
+++ b/config/alfresco/patch/patch-services-context.xml
@@ -1770,4 +1770,38 @@
+
+ patch.mtShareExistingTenants
+ patch.mtShareExistingTenants.description
+ 0
+ 2008
+ 2009
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ jbpm
+ alfresco/workflow/invitation-nominated_processdefinition.xml
+ text/xml
+
+
+ jbpm
+ alfresco/workflow/invitation-moderated_processdefinition.xml
+ text/xml
+
+
+
+
+
diff --git a/config/alfresco/version.properties b/config/alfresco/version.properties
index aa1479e0d8..950e545a42 100644
--- a/config/alfresco/version.properties
+++ b/config/alfresco/version.properties
@@ -19,4 +19,4 @@ version.build=@build-number@
# Schema number
-version.schema=2008
+version.schema=2009
diff --git a/source/java/org/alfresco/repo/admin/patch/impl/MultiTShareExistingTenantsPatch.java b/source/java/org/alfresco/repo/admin/patch/impl/MultiTShareExistingTenantsPatch.java
new file mode 100644
index 0000000000..bc0f7e4f0c
--- /dev/null
+++ b/source/java/org/alfresco/repo/admin/patch/impl/MultiTShareExistingTenantsPatch.java
@@ -0,0 +1,94 @@
+/*
+ * Copyright (C) 2005-2009 Alfresco Software Limited.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+ * As a special exception to the terms and conditions of version 2.0 of
+ * the GPL, you may redistribute this Program in connection with Free/Libre
+ * and Open Source Software ("FLOSS") applications as described in Alfresco's
+ * FLOSS exception. You should have recieved a copy of the text describing
+ * the FLOSS exception, and it is also available here:
+ * http://www.alfresco.com/legal/licensing
+ */
+package org.alfresco.repo.admin.patch.impl;
+
+import java.util.List;
+import java.util.Properties;
+
+import org.alfresco.i18n.I18NUtil;
+import org.alfresco.repo.admin.patch.AbstractPatch;
+import org.alfresco.repo.site.SiteAVMBootstrap;
+import org.alfresco.repo.tenant.TenantService;
+import org.alfresco.repo.workflow.WorkflowDeployer;
+
+/**
+ * MT Share - update existing tenants (if any)
+ */
+public class MultiTShareExistingTenantsPatch extends AbstractPatch
+{
+ private static final String MSG_RESULT = "patch.mtShareExitingTenants.result";
+
+ private SiteAVMBootstrap siteBootstrap;
+ private WorkflowDeployer workflowPatchDeployer;
+ private List workflowDefinitions;
+ private TenantService tenantService;
+
+ public void setSiteAVMBootstrap(SiteAVMBootstrap siteBootstrap)
+ {
+ this.siteBootstrap = siteBootstrap;
+ }
+
+ public void setWorkflowDeployer(WorkflowDeployer workflowPatchDeployer)
+ {
+ this.workflowPatchDeployer = workflowPatchDeployer;
+ }
+
+ public void setWorkflowDefinitions(List workflowDefinitions)
+ {
+ this.workflowDefinitions = workflowDefinitions;
+ }
+
+ public void setTenantService(TenantService tenantService)
+ {
+ this.tenantService = tenantService;
+ }
+
+ /**
+ * @see org.alfresco.repo.admin.patch.AbstractPatch#checkProperties()
+ */
+ @Override
+ protected void checkProperties()
+ {
+ super.checkProperties();
+ checkPropertyNotNull(this.siteBootstrap, "siteAVMBootstrap");
+ }
+
+ /**
+ * @see org.alfresco.repo.admin.patch.AbstractPatch#applyInternal()
+ */
+ @Override
+ protected String applyInternal() throws Exception
+ {
+ if (! tenantService.getCurrentUserDomain().equals(TenantService.DEFAULT_DOMAIN))
+ {
+ this.siteBootstrap.bootstrap();
+
+ workflowPatchDeployer.setWorkflowDefinitions(workflowDefinitions);
+ workflowPatchDeployer.init();
+ }
+
+ return I18NUtil.getMessage(MSG_RESULT);
+ }
+}