diff --git a/addons/account/i18n/account.pot b/addons/account/i18n/account.pot
index e9ae89d92e110b4d521e0063c2cc222808d3ad06..fbfea6933aa4c4d67b5a4c43e40d14f787bbd44c 100644
--- a/addons/account/i18n/account.pot
+++ b/addons/account/i18n/account.pot
@@ -10799,6 +10799,12 @@ msgstr ""
 msgid "You can not have an overlap between two fiscal years, please correct the start and/or end dates of your fiscal years."
 msgstr ""
 
+#. module: account
+#: code:addons/account/models/partner.py:441
+#, python-format
+msgid "You can't change the company of a partner if the latter already has some invoices."
+msgstr ""
+
 #. module: account
 #: code:addons/account/models/account_invoice.py:1784
 #, python-format
diff --git a/addons/account/models/partner.py b/addons/account/models/partner.py
index b92f900904dfbb74d1566977ea17e085ac28cda5..e7218094cdd59c181b316573eb536d5ab0d0f712 100644
--- a/addons/account/models/partner.py
+++ b/addons/account/models/partner.py
@@ -434,6 +434,22 @@ class ResPartner(models.Model):
         for partner in self:
             partner.bank_account_count = mapped_data.get(partner.id, 0)
 
+    @api.constrains('company_id')
+    def _check_company_and_invoices(self):
+        partners_with_company = self.filtered(lambda p: p.company_id)
+        if partners_with_company:
+            query = """
+                SELECT partner.id
+                  FROM res_partner partner
+                  JOIN account_invoice invoice ON invoice.partner_id = partner.id
+                                              AND invoice.company_id != partner.company_id
+                 WHERE partner.id IN %s
+                 LIMIT 1
+             """
+            self.env.cr.execute(query, (tuple(partners_with_company.ids),))
+            if self.env.cr.fetchall():
+                raise ValidationError(_("You can't change the company of a partner if the latter already has some invoices."))
+
     def _find_accounting_partner(self, partner):
         ''' Find the partner for which the accounting entries will be created '''
         return partner.commercial_partner_id