diff --git a/config/alfresco/dbscripts/db-schema-context.xml b/config/alfresco/dbscripts/db-schema-context.xml
index d48f827ff9..e9831e412c 100644
--- a/config/alfresco/dbscripts/db-schema-context.xml
+++ b/config/alfresco/dbscripts/db-schema-context.xml
@@ -58,7 +58,8 @@
-
+
+
diff --git a/config/alfresco/dbscripts/upgrade/4.2/org.hibernate.dialect.MySQLInnoDBDialect/migrate-locale-multilingual.sql b/config/alfresco/dbscripts/upgrade/4.2/org.hibernate.dialect.MySQLInnoDBDialect/migrate-locale-multilingual.sql
new file mode 100644
index 0000000000..92924790f5
--- /dev/null
+++ b/config/alfresco/dbscripts/upgrade/4.2/org.hibernate.dialect.MySQLInnoDBDialect/migrate-locale-multilingual.sql
@@ -0,0 +1,80 @@
+--
+-- Title: Updates 'locale_id' column in 'alf_node' for nodes with cm:mlDocument aspect and of type cm:mlContainer
+-- Database: MySQL
+-- Since: V4.2.4 Schema 6068
+-- Author: Pavel Yurkevich
+--
+-- Please contact support@alfresco.com if you need assistance with the upgrade.
+--
+
+CREATE TABLE tmp_locale_upgrade
+(
+ node_id BIGINT NOT NULL,
+ string_value text,
+ KEY idx_tmp_loc_n_id (node_id),
+ KEY idx_tmp_loc_str_v (string_value(42))
+) ENGINE=InnoDB;
+
+--ASSIGN:locale_qname_id=id
+SELECT alf_qname.id AS id FROM alf_qname
+JOIN alf_namespace ON (alf_namespace.id = alf_qname.ns_id)
+WHERE
+ alf_namespace.uri = 'http://www.alfresco.org/model/system/1.0'
+AND
+ alf_qname.local_name = 'locale';
+
+INSERT INTO tmp_locale_upgrade (node_id, string_value)
+(
+ SELECT alf_node_properties.node_id, string_value FROM alf_node_properties
+ JOIN alf_node_aspects ON (alf_node_aspects.node_id = alf_node_properties.node_id)
+ JOIN alf_qname ON (alf_qname.id = alf_node_aspects.qname_id)
+ JOIN alf_namespace ON (alf_namespace.id = alf_qname.ns_id)
+ WHERE
+ alf_namespace.uri = 'http://www.alfresco.org/model/content/1.0'
+ AND
+ (
+ alf_qname.local_name = 'mlDocument'
+ )
+ AND
+ alf_node_properties.qname_id = ${locale_qname_id}
+);
+
+INSERT INTO tmp_locale_upgrade (node_id, string_value)
+(
+ SELECT alf_node_properties.node_id, string_value FROM alf_node_properties
+ JOIN alf_node ON (alf_node.id = alf_node_properties.node_id)
+ JOIN alf_qname ON (alf_qname.id = alf_node.type_qname_id)
+ JOIN alf_namespace ON (alf_namespace.id = alf_qname.ns_id)
+ WHERE
+ alf_namespace.uri = 'http://www.alfresco.org/model/content/1.0'
+ AND
+ alf_qname.local_name = 'mlContainer'
+ AND
+ alf_node_properties.qname_id = ${locale_qname_id}
+);
+
+INSERT INTO alf_locale (version, locale_str)
+(
+ SELECT DISTINCT 0, string_value FROM tmp_locale_upgrade
+ LEFT JOIN alf_locale ON (alf_locale.locale_str = tmp_locale_upgrade.string_value)
+ WHERE alf_locale.locale_str IS NULL
+);
+
+UPDATE alf_node
+JOIN tmp_locale_upgrade ON (tmp_locale_upgrade.node_id = alf_node.id)
+JOIN alf_locale ON (tmp_locale_upgrade.string_value = alf_locale.locale_str)
+SET locale_id = alf_locale.id;
+
+DROP TABLE tmp_locale_upgrade;
+
+--
+-- Record script finish
+--
+DELETE FROM alf_applied_patch WHERE id = 'patch.db-V4.2-migrate-locale-multilingual';
+INSERT INTO alf_applied_patch
+ (id, description, fixes_from_schema, fixes_to_schema, applied_to_schema, target_schema, applied_on_date, applied_to_server, was_executed, succeeded, report)
+ VALUES
+ (
+ 'patch.db-V4.2-migrate-locale-multilingual', 'Manually executed script upgrade V4.2: Updates locale_id column in alf_node for ML nodes',
+ 0, 6067, -1, 6068, null, 'UNKNOWN', ${TRUE}, ${TRUE}, 'Script completed'
+ );
\ No newline at end of file
diff --git a/config/alfresco/dbscripts/upgrade/4.2/org.hibernate.dialect.PostgreSQLDialect/migrate-locale-multilingual.sql b/config/alfresco/dbscripts/upgrade/4.2/org.hibernate.dialect.PostgreSQLDialect/migrate-locale-multilingual.sql
new file mode 100644
index 0000000000..c808e382aa
--- /dev/null
+++ b/config/alfresco/dbscripts/upgrade/4.2/org.hibernate.dialect.PostgreSQLDialect/migrate-locale-multilingual.sql
@@ -0,0 +1,85 @@
+--
+-- Title: Updates 'locale_id' column in 'alf_node' for nodes with cm:mlDocument aspect and of type cm:mlContainer
+-- Database: PostgreSQL
+-- Since: V4.2.4 Schema 6068
+-- Author: Pavel Yurkevich
+--
+-- Please contact support@alfresco.com if you need assistance with the upgrade.
+--
+
+CREATE TABLE tmp_locale_upgrade
+(
+ node_id INT8 NOT NULL,
+ string_value VARCHAR(1024)
+);
+
+CREATE INDEX idx_tmp_loc_n_id ON tmp_locale_upgrade (node_id);
+CREATE INDEX idx_tmp_loc_str_v ON tmp_locale_upgrade (string_value);
+
+--ASSIGN:locale_qname_id=id
+SELECT alf_qname.id AS id FROM alf_qname
+JOIN alf_namespace ON (alf_namespace.id = alf_qname.ns_id)
+WHERE
+ alf_namespace.uri = 'http://www.alfresco.org/model/system/1.0'
+AND
+ alf_qname.local_name = 'locale';
+
+INSERT INTO tmp_locale_upgrade (node_id, string_value)
+(
+ SELECT alf_node_properties.node_id, string_value FROM alf_node_properties
+ JOIN alf_node_aspects ON (alf_node_aspects.node_id = alf_node_properties.node_id)
+ JOIN alf_qname ON (alf_qname.id = alf_node_aspects.qname_id)
+ JOIN alf_namespace ON (alf_namespace.id = alf_qname.ns_id)
+ WHERE
+ alf_namespace.uri = 'http://www.alfresco.org/model/content/1.0'
+ AND
+ (
+ alf_qname.local_name = 'mlDocument'
+ )
+ AND
+ alf_node_properties.qname_id = ${locale_qname_id}
+);
+
+INSERT INTO tmp_locale_upgrade (node_id, string_value)
+(
+ SELECT alf_node_properties.node_id, string_value FROM alf_node_properties
+ JOIN alf_node ON (alf_node.id = alf_node_properties.node_id)
+ JOIN alf_qname ON (alf_qname.id = alf_node.type_qname_id)
+ JOIN alf_namespace ON (alf_namespace.id = alf_qname.ns_id)
+ WHERE
+ alf_namespace.uri = 'http://www.alfresco.org/model/content/1.0'
+ AND
+ alf_qname.local_name = 'mlContainer'
+ AND
+ alf_node_properties.qname_id = ${locale_qname_id}
+);
+
+INSERT INTO alf_locale (id, version, locale_str)
+SELECT nextval('alf_locale_seq'), 0, string_value
+FROM
+(
+ SELECT string_value FROM tmp_locale_upgrade
+ LEFT JOIN alf_locale ON (alf_locale.locale_str = tmp_locale_upgrade.string_value)
+ WHERE alf_locale.locale_str IS NULL GROUP BY string_value
+) AS string_value;
+
+UPDATE alf_node SET locale_id = alf_locale.id
+FROM alf_locale, tmp_locale_upgrade
+WHERE
+ tmp_locale_upgrade.node_id = alf_node.id
+AND
+ tmp_locale_upgrade.string_value = alf_locale.locale_str;
+
+DROP TABLE tmp_locale_upgrade;
+
+--
+-- Record script finish
+--
+DELETE FROM alf_applied_patch WHERE id = 'patch.db-V4.2-migrate-locale-multilingual';
+INSERT INTO alf_applied_patch
+ (id, description, fixes_from_schema, fixes_to_schema, applied_to_schema, target_schema, applied_on_date, applied_to_server, was_executed, succeeded, report)
+ VALUES
+ (
+ 'patch.db-V4.2-migrate-locale-multilingual', 'Manually executed script upgrade V4.2: Updates locale_id column in alf_node for ML nodes',
+ 0, 6067, -1, 6068, null, 'UNKNOWN', ${TRUE}, ${TRUE}, 'Script completed'
+ );
\ No newline at end of file
diff --git a/config/alfresco/patch/patch-services-context.xml b/config/alfresco/patch/patch-services-context.xml
index 94f7d4aabf..8f85fbd4ed 100644
--- a/config/alfresco/patch/patch-services-context.xml
+++ b/config/alfresco/patch/patch-services-context.xml
@@ -1080,4 +1080,20 @@
+
+
+
+ 0
+ 8018
+ 8019
+
+ classpath:alfresco/dbscripts/upgrade/4.2/${db.script.dialect}/migrate-locale-multilingual.sql
+
+
+
+
+
+
+
+
diff --git a/config/alfresco/version.properties b/config/alfresco/version.properties
index 75be2557aa..70947557f2 100644
--- a/config/alfresco/version.properties
+++ b/config/alfresco/version.properties
@@ -23,4 +23,4 @@ version.build=r@scm-revision@-b@build-number@
# Schema number
-version.schema=8018
+version.schema=8019