diff --git a/src-db/database/model/functions/AD_LANGUAGE_CREATE.xml b/src-db/database/model/functions/AD_LANGUAGE_CREATE.xml
--- a/src-db/database/model/functions/AD_LANGUAGE_CREATE.xml
+++ b/src-db/database/model/functions/AD_LANGUAGE_CREATE.xml
@@ -237,6 +237,7 @@
     WHERE AD_Language.IsActive='Y'  
     AND AD_Language.IsSystemLanguage='Y'  
     AND M.AD_MODULE_ID = AD_Message.AD_MODULE_ID
+    AND M.AD_Language != AD_Language.AD_Language
     AND NOT EXISTS (SELECT 1 FROM AD_Message_trl
                  WHERE AD_Message_ID = AD_Message.AD_Message_id
                    AND AD_LANGUAGE = AD_Language.AD_Language);
@@ -382,6 +383,7 @@
     SELECT get_uuid(), AD_Month_ID, AD_Language.AD_Language, AD_Month.Name, 'N', '0', '0', AD_Month.AD_Client_ID, AD_Month.AD_Org_ID
     FROM AD_Month, AD_Language
     WHERE AD_Language.IsActive='Y'  AND AD_Language.IsSystemLanguage='Y'  
+    AND AD_Language.AD_Language != (SELECT ad_language FROM ad_module WHERE name = 'Core')
      AND NOT EXISTS (SELECT 1 FROM AD_Month_TRL
                  WHERE AD_Month_ID = AD_Month.AD_Month_ID
                    AND AD_LANGUAGE = AD_Language.AD_Language); 
@@ -400,7 +402,8 @@
       )
     SELECT get_uuid(), C_Country_ID, AD_Language.AD_Language, C_Country.Name, C_Country.Description, C_Country.RegionName, C_Country.DisplaySequence, 'N', '0', '0', C_Country.AD_Client_ID, C_Country.AD_Org_ID
     FROM C_Country, AD_Language
-    WHERE AD_Language.IsActive='Y'  AND AD_Language.IsSystemLanguage='Y'  
+    WHERE AD_Language.IsActive='Y'  AND AD_Language.IsSystemLanguage='Y' 
+    AND AD_Language.AD_Language != (SELECT ad_language FROM ad_module WHERE name = 'Core')
     AND NOT EXISTS (SELECT 1 FROM C_Country_TRL
                  WHERE C_Country_ID = C_Country.C_Country_ID
                    AND AD_LANGUAGE = AD_Language.AD_Language); 
@@ -420,6 +423,7 @@
     SELECT get_uuid(), C_Currency_ID, AD_Language.AD_Language, C_Currency.CurSymbol, C_Currency.Description, 'N', '0', '0', C_Currency.AD_Client_ID, C_Currency.AD_Org_ID
     FROM C_Currency, AD_Language
     WHERE AD_Language.IsActive='Y'  AND AD_Language.IsSystemLanguage='Y'  
+    AND AD_Language.AD_Language != (SELECT ad_language FROM ad_module WHERE name = 'Core')    
     AND NOT EXISTS (SELECT 1 FROM C_Currency_TRL
                  WHERE C_Currency_ID = C_Currency.C_Currency_ID
                    AND AD_LANGUAGE = AD_Language.AD_Language); 
@@ -438,10 +442,11 @@
         DocumentNote, IsTranslated, Createdby, UpdatedBy,
         AD_Client_ID, AD_Org_ID
       )
-    SELECT get_uuid(), C_DocType_ID, AD_Language, C_DocType.Name, C_DocType.PrintName, C_DocType.DocumentNote, 'N', '0', '0', C_DocType.AD_Client_ID, C_DocType.AD_Org_ID
+    SELECT get_uuid(), C_DocType_ID, AD_Language.AD_Language, C_DocType.Name, C_DocType.PrintName, C_DocType.DocumentNote, 'N', '0', '0', C_DocType.AD_Client_ID, C_DocType.AD_Org_ID
     FROM C_DocType, AD_Language
     WHERE AD_Language.IsActive='Y'  AND AD_Language.IsSystemLanguage='Y'  
-     AND NOT EXISTS (SELECT 1 FROM C_DocType_TRL
+    AND AD_Language.AD_Language != (SELECT ad_language FROM ad_module WHERE name = 'Core')          
+    AND NOT EXISTS (SELECT 1 FROM C_DocType_TRL
                  WHERE C_DocType_ID = C_DocType.C_DocType_ID
                    AND AD_LANGUAGE = AD_Language.AD_Language); 
 
@@ -456,10 +461,11 @@
         IsTranslated, Createdby, UpdatedBy, AD_Client_ID,
         AD_Org_ID
       )
-    SELECT get_uuid(), C_ElementValue_ID, AD_Language, C_ElementValue.Name, C_ElementValue.Description, 'N', '0', '0', C_ElementValue.AD_Client_ID, C_ElementValue.AD_Org_ID
+    SELECT get_uuid(), C_ElementValue_ID, AD_Language.AD_Language, C_ElementValue.Name, C_ElementValue.Description, 'N', '0', '0', C_ElementValue.AD_Client_ID, C_ElementValue.AD_Org_ID
     FROM C_ElementValue, AD_Language
     WHERE AD_Language.IsActive='Y'  AND AD_Language.IsSystemLanguage='Y'  
-     AND NOT EXISTS (SELECT 1 FROM C_ElementValue_TRL
+    AND AD_Language.AD_Language != (SELECT ad_language FROM ad_module WHERE name = 'Core')      
+    AND NOT EXISTS (SELECT 1 FROM C_ElementValue_TRL
                  WHERE C_ElementValue_ID = C_ElementValue.C_ElementValue_ID
                    AND AD_LANGUAGE = AD_Language.AD_Language); 
 
@@ -473,9 +479,10 @@
         IsTranslated, Createdby, UpdatedBy, AD_Client_ID,
         AD_Org_ID
       )
-    SELECT get_uuid(), C_Greeting_ID, AD_Language, C_Greeting.Name, C_Greeting.Greeting, 'N', '0', '0', C_Greeting.AD_Client_ID, C_Greeting.AD_Org_ID
+    SELECT get_uuid(), C_Greeting_ID, AD_Language.AD_Language, C_Greeting.Name, C_Greeting.Greeting, 'N', '0', '0', C_Greeting.AD_Client_ID, C_Greeting.AD_Org_ID
     FROM C_Greeting, AD_Language
-    WHERE AD_Language.IsActive='Y'  AND AD_Language.IsSystemLanguage='Y'  
+    WHERE AD_Language.IsActive='Y'  AND AD_Language.IsSystemLanguage='Y'
+    AND AD_Language.AD_Language != (SELECT ad_language FROM ad_module WHERE name = 'Core')    
     AND NOT EXISTS (SELECT 1 FROM C_Greeting_TRL
                  WHERE C_Greeting_ID = C_Greeting.C_Greeting_ID
                    AND AD_LANGUAGE = AD_Language.AD_Language); 
@@ -490,9 +497,10 @@
         DocumentNote, IsTranslated, Createdby, UpdatedBy,
         AD_Client_ID, AD_Org_ID
       )
-    SELECT get_uuid(), C_PaymentTerm_ID, AD_Language, C_PaymentTerm.Name, C_PaymentTerm.Description, C_PaymentTerm.DocumentNote, 'N', '0', '0', C_PaymentTerm.AD_Client_ID, C_PaymentTerm.AD_Org_ID
+    SELECT get_uuid(), C_PaymentTerm_ID, AD_Language.AD_Language, C_PaymentTerm.Name, C_PaymentTerm.Description, C_PaymentTerm.DocumentNote, 'N', '0', '0', C_PaymentTerm.AD_Client_ID, C_PaymentTerm.AD_Org_ID
     FROM C_PaymentTerm, AD_Language
-    WHERE AD_Language.IsActive='Y'  AND AD_Language.IsSystemLanguage='Y'  
+    WHERE AD_Language.IsActive='Y'  AND AD_Language.IsSystemLanguage='Y' 
+    AND AD_Language.AD_Language != (SELECT ad_language FROM ad_module WHERE name = 'Core')  
     AND NOT EXISTS (SELECT 1 FROM C_PaymentTerm_TRL
                  WHERE C_PaymentTerm_ID = C_PaymentTerm.C_PaymentTerm_ID
                    AND AD_LANGUAGE = AD_Language.AD_Language); 
@@ -507,9 +515,10 @@
         IsTranslated, Createdby, UpdatedBy, AD_Client_ID,
         AD_Org_ID
       )
-    SELECT get_uuid(), C_TaxCategory_ID, AD_Language, C_TaxCategory.Name, C_TaxCategory.Description, 'N', '0', '0', C_TaxCategory.AD_Client_ID, C_TaxCategory.AD_Org_ID
+    SELECT get_uuid(), C_TaxCategory_ID, AD_Language.AD_Language, C_TaxCategory.Name, C_TaxCategory.Description, 'N', '0', '0', C_TaxCategory.AD_Client_ID, C_TaxCategory.AD_Org_ID
     FROM C_TaxCategory, AD_Language
-    WHERE AD_Language.IsActive='Y'  AND AD_Language.IsSystemLanguage='Y'  
+    WHERE AD_Language.IsActive='Y'  AND AD_Language.IsSystemLanguage='Y'
+    AND AD_Language.AD_Language != (SELECT ad_language FROM ad_module WHERE name = 'Core')  
      AND NOT EXISTS (SELECT 1 FROM C_TaxCategory_TRL
                  WHERE C_TaxCategory_ID = C_TaxCategory.C_TaxCategory_ID
                    AND AD_LANGUAGE = AD_Language.AD_Language); 
@@ -524,9 +533,10 @@
         UOMSymbol, IsTranslated, Createdby, UpdatedBy,
         AD_Client_ID, AD_Org_ID
       )
-    SELECT get_uuid(), C_UOM_ID, AD_Language, C_UOM.Name, C_UOM.Description, C_UOM.UOMSymbol, 'N', '0', '0', C_UOM.AD_Client_ID, C_UOM.AD_Org_ID
+    SELECT get_uuid(), C_UOM_ID, AD_Language.AD_Language, C_UOM.Name, C_UOM.Description, C_UOM.UOMSymbol, 'N', '0', '0', C_UOM.AD_Client_ID, C_UOM.AD_Org_ID
     FROM C_UOM, AD_Language
     WHERE AD_Language.IsActive='Y'  AND AD_Language.IsSystemLanguage='Y'  
+    AND AD_Language.AD_Language != (SELECT ad_language FROM ad_module WHERE name = 'Core')  
     AND NOT EXISTS (SELECT 1 FROM C_UOM_TRL
                  WHERE C_UOM_ID = C_UOM.C_UOM_ID
                    AND AD_LANGUAGE = AD_Language.AD_Language); 
@@ -541,9 +551,10 @@
         TaxIndicator, IsTranslated, Createdby, UpdatedBy,
         AD_Client_ID, AD_Org_ID
       )
-    SELECT get_uuid(), C_Tax_ID, AD_Language, C_Tax.Name, C_Tax.Description, C_Tax.TaxIndicator, 'N', '0', '0', C_Tax.AD_Client_ID, C_Tax.AD_Org_ID
+    SELECT get_uuid(), C_Tax_ID, AD_Language.AD_Language, C_Tax.Name, C_Tax.Description, C_Tax.TaxIndicator, 'N', '0', '0', C_Tax.AD_Client_ID, C_Tax.AD_Org_ID
     FROM C_Tax, AD_Language
     WHERE AD_Language.IsActive='Y'  AND AD_Language.IsSystemLanguage='Y'  
+    AND AD_Language.AD_Language != (SELECT ad_language FROM ad_module WHERE name = 'Core')  
     AND NOT EXISTS (SELECT 1 FROM C_Tax_TRL
                  WHERE C_Tax_ID = C_Tax.C_Tax_ID
                    AND AD_LANGUAGE = AD_Language.AD_Language); 
diff --git a/src-util/modulescript/src/org/openbravo/modulescript/DeleteRedundantTranslations.java b/src-util/modulescript/src/org/openbravo/modulescript/DeleteRedundantTranslations.java
new file mode 100644
--- /dev/null
+++ b/src-util/modulescript/src/org/openbravo/modulescript/DeleteRedundantTranslations.java
@@ -0,0 +1,48 @@
+/*
+ *************************************************************************
+ * The contents of this file are subject to the Openbravo  Public  License
+ * Version  1.1  (the  "License"),  being   the  Mozilla   Public  License
+ * Version 1.1  with a permitted attribution clause; you may not  use this
+ * file except in compliance with the License. You  may  obtain  a copy of
+ * the License at http://www.openbravo.com/legal/license.html
+ * Software distributed under the License  is  distributed  on  an "AS IS"
+ * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+ * License for the specific  language  governing  rights  and  limitations
+ * under the License.
+ * The Original Code is Openbravo ERP.
+ * The Initial Developer of the Original Code is Openbravo SLU
+ * All portions are Copyright (C) 2012 Openbravo SLU
+ * All Rights Reserved.
+ * Contributor(s):  ______________________________________.
+ ************************************************************************
+ */
+package org.openbravo.modulescript;
+
+import java.sql.Connection;
+
+import javax.servlet.ServletException;
+
+import org.openbravo.database.ConnectionProvider;
+
+public class DeleteRedundantTranslations extends ModuleScript {
+  @Override
+  // Deletes the redundant translations (its language is the same as the language of its module)
+  public void execute() {
+    try {
+      ConnectionProvider cp = getConnectionProvider();
+      DeleteRedundantTranslationsData.deleteRedundantMessageTranslations(cp.getConnection(), cp);
+      DeleteRedundantTranslationsData.deleteRedundantMonthTranslations(cp.getConnection(), cp);
+      DeleteRedundantTranslationsData.deleteRedundantCountryTranslations(cp.getConnection(), cp);
+      DeleteRedundantTranslationsData.deleteRedundantCurrencyTranslations(cp.getConnection(), cp);
+      DeleteRedundantTranslationsData.deleteRedundantDocTypeTranslations(cp.getConnection(), cp);
+      DeleteRedundantTranslationsData.deleteRedundantElementValueTranslations(cp.getConnection(), cp);
+      DeleteRedundantTranslationsData.deleteRedundantGreetingTranslations(cp.getConnection(), cp);
+      DeleteRedundantTranslationsData.deleteRedundantPaymentTermTranslations(cp.getConnection(), cp);
+      DeleteRedundantTranslationsData.deleteRedundantTaxCategoryTranslations(cp.getConnection(), cp);
+      DeleteRedundantTranslationsData.deleteRedundantUOMTranslations(cp.getConnection(), cp);
+      DeleteRedundantTranslationsData.deleteRedundantTaxTranslations(cp.getConnection(), cp);
+    } catch (Exception e) {
+      handleError(e);
+    }
+  }
+}
diff --git a/src-util/modulescript/src/org/openbravo/modulescript/DeleteRedundantTranslations_data.xsql b/src-util/modulescript/src/org/openbravo/modulescript/DeleteRedundantTranslations_data.xsql
new file mode 100644
--- /dev/null
+++ b/src-util/modulescript/src/org/openbravo/modulescript/DeleteRedundantTranslations_data.xsql
@@ -0,0 +1,165 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+ *************************************************************************
+ * The contents of this file are subject to the Openbravo  Public  License
+ * Version  1.1  (the  "License"),  being   the  Mozilla   Public  License
+ * Version 1.1  with a permitted attribution clause; you may not  use this
+ * file except in compliance with the License. You  may  obtain  a copy of
+ * the License at http://www.openbravo.com/legal/license.html
+ * Software distributed under the License  is  distributed  on  an "AS IS"
+ * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+ * License for the specific  language  governing  rights  and  limitations
+ * under the License.
+ * The Original Code is Openbravo ERP.
+ * The Initial Developer of the Original Code is Openbravo SLU
+ * All portions are Copyright (C) 2012 Openbravo SLU
+ * All Rights Reserved.
+ * Contributor(s):  ______________________________________.
+ ************************************************************************
+-->
+<SqlClass name="DeleteRedundantTranslationsData" package="org.openbravo.modulescript">
+  <SqlClassComment></SqlClassComment>
+  <SqlMethod name="select" type="preparedStatement" connection="true" return="multiple">
+    <SqlMethodComment></SqlMethodComment>
+    <Sql>
+      <![CDATA[
+        select '' as name
+        from dual
+      ]]>
+    </Sql>
+  </SqlMethod>
+  
+  <SqlMethod name="deleteRedundantMessageTranslations" type="preparedStatement" connection="true" return="rowcount">
+    <SqlMethodComment></SqlMethodComment>
+    <Sql>
+      <![CDATA[
+        delete from ad_message_trl
+        where ad_message_id in (select msg_trl.ad_message_id
+                                from ad_message msg, ad_message_trl msg_trl, ad_module mdl
+                                where msg.ad_message_id = msg_trl.ad_message_id
+                                and msg.ad_module_id = mdl.ad_module_id
+                                and mdl.ad_language = msg_trl.ad_language)
+      ]]>
+    </Sql>
+  </SqlMethod>
+  <SqlMethod name="deleteRedundantMonthTranslations" type="preparedStatement" connection="true" return="rowcount">
+    <SqlMethodComment></SqlMethodComment>
+    <Sql>
+      <![CDATA[
+        delete from ad_month_trl
+        where ad_month_id in (select month.ad_month_id
+                                from ad_month month, ad_month_trl month_trl
+                                where month.ad_month_id = month_trl.ad_month_id
+                                and month_trl.ad_language = (SELECT ad_language FROM ad_module WHERE name = 'Core'))
+      ]]>
+    </Sql>
+  </SqlMethod>  
+  <SqlMethod name="deleteRedundantCountryTranslations" type="preparedStatement" connection="true" return="rowcount">
+    <SqlMethodComment></SqlMethodComment>
+    <Sql>
+      <![CDATA[
+        delete from c_country_trl
+        where c_country_id in (select country.c_country_id
+                                from c_country country, c_country_trl country_trl
+                                where country.c_country_id = country_trl.c_country_id
+                                and country_trl.ad_language = (SELECT ad_language FROM ad_module WHERE name = 'Core'))
+      ]]>
+    </Sql>
+  </SqlMethod>    
+  <SqlMethod name="deleteRedundantCurrencyTranslations" type="preparedStatement" connection="true" return="rowcount">
+    <SqlMethodComment></SqlMethodComment>
+    <Sql>
+      <![CDATA[
+        delete from c_currency_trl
+        where c_currency_id in (select currency.c_currency_id
+                                from c_currency currency, c_currency_trl currency_trl
+                                where currency.c_currency_id = currency_trl.c_currency_id
+                                and currency_trl.ad_language = (SELECT ad_language FROM ad_module WHERE name = 'Core'))
+      ]]>
+    </Sql>
+  </SqlMethod>   
+  <SqlMethod name="deleteRedundantDocTypeTranslations" type="preparedStatement" connection="true" return="rowcount">
+    <SqlMethodComment></SqlMethodComment>
+    <Sql>
+      <![CDATA[
+        delete from c_doctype_trl
+        where c_doctype_id in (select doctype_trl.c_doctype_id
+                                from c_doctype doctype, c_doctype_trl doctype_trl
+                                where doctype.c_doctype_id = doctype_trl.c_doctype_id
+                                and doctype_trl.ad_language = (SELECT ad_language FROM ad_module WHERE name = 'Core'))
+      ]]>
+    </Sql>
+  </SqlMethod> 
+  <SqlMethod name="deleteRedundantElementValueTranslations" type="preparedStatement" connection="true" return="rowcount">
+    <SqlMethodComment></SqlMethodComment>
+    <Sql>
+      <![CDATA[
+        delete from c_elementvalue_trl
+        where c_elementvalue_id in (select elementvalue_trl.c_elementvalue_id
+                                from c_elementvalue elementvalue, c_elementvalue_trl elementvalue_trl
+                                where elementvalue.c_elementvalue_id = elementvalue_trl.c_elementvalue_id
+                                and elementvalue_trl.ad_language = (SELECT ad_language FROM ad_module WHERE name = 'Core'))
+      ]]>
+    </Sql>
+  </SqlMethod>      
+  <SqlMethod name="deleteRedundantGreetingTranslations" type="preparedStatement" connection="true" return="rowcount">
+    <SqlMethodComment></SqlMethodComment>
+    <Sql>
+      <![CDATA[
+        delete from c_greeting_trl
+        where c_greeting_id in (select greeting_trl.c_greeting_id
+                                from c_greeting greeting, c_greeting_trl greeting_trl
+                                where greeting.c_greeting_id = greeting_trl.c_greeting_id
+                                and greeting_trl.ad_language = (SELECT ad_language FROM ad_module WHERE name = 'Core'))
+      ]]>
+    </Sql>
+  </SqlMethod>   
+  <SqlMethod name="deleteRedundantPaymentTermTranslations" type="preparedStatement" connection="true" return="rowcount">
+    <SqlMethodComment></SqlMethodComment>
+    <Sql>
+      <![CDATA[
+        delete from c_paymentterm_trl
+        where c_paymentterm_id in (select paymentterm_trl.c_paymentterm_id
+                                from c_paymentterm paymentterm, c_paymentterm_trl paymentterm_trl
+                                where paymentterm.c_paymentterm_id = paymentterm_trl.c_paymentterm_id
+                                and paymentterm_trl.ad_language = (SELECT ad_language FROM ad_module WHERE name = 'Core'))
+      ]]>
+    </Sql>
+  </SqlMethod>  
+  <SqlMethod name="deleteRedundantTaxCategoryTranslations" type="preparedStatement" connection="true" return="rowcount">
+    <SqlMethodComment></SqlMethodComment>
+    <Sql>
+      <![CDATA[
+        delete from c_taxcategory_trl
+        where c_taxcategory_id in (select taxcategory_trl.c_taxcategory_id
+                                from c_taxcategory taxcategory, c_taxcategory_trl taxcategory_trl
+                                where taxcategory.c_taxcategory_id = taxcategory_trl.c_taxcategory_id
+                                and taxcategory_trl.ad_language = (SELECT ad_language FROM ad_module WHERE name = 'Core'))
+      ]]>
+    </Sql>
+  </SqlMethod>  
+  <SqlMethod name="deleteRedundantUOMTranslations" type="preparedStatement" connection="true" return="rowcount">
+    <SqlMethodComment></SqlMethodComment>
+    <Sql>
+      <![CDATA[
+        delete from c_uom_trl
+        where c_uom_id in (select uom_trl.c_uom_id
+                                from c_uom uom, c_uom_trl uom_trl
+                                where uom.c_uom_id = uom_trl.c_uom_id
+                                and uom_trl.ad_language = (SELECT ad_language FROM ad_module WHERE name = 'Core'))
+      ]]>
+    </Sql>
+  </SqlMethod>    
+  <SqlMethod name="deleteRedundantTaxTranslations" type="preparedStatement" connection="true" return="rowcount">
+    <SqlMethodComment></SqlMethodComment>
+    <Sql>
+      <![CDATA[
+        delete from c_tax_trl
+        where c_tax_id in (select tax_trl.c_tax_id
+                                from c_tax tax, c_tax_trl tax_trl
+                                where tax.c_tax_id = tax_trl.c_tax_id
+                                and tax_trl.ad_language = (SELECT ad_language FROM ad_module WHERE name = 'Core'))
+      ]]>
+    </Sql>
+  </SqlMethod>    
+</SqlClass>
