diff --git a/addons/account/models/account_account.py b/addons/account/models/account_account.py
index 7bfc08ad600df583feb2c5d992e6d239739293ef..1abd0c51b3b0bde73801fef7444d7005e4101c1f 100644
--- a/addons/account/models/account_account.py
+++ b/addons/account/models/account_account.py
@@ -787,6 +787,9 @@ class AccountAccount(models.Model):
             'template': '/account/static/xls/coa_import_template.xlsx'
         }]
 
+    def _merge_method(self, destination, source):
+        raise UserError(_("You cannot merge accounts."))
+
 
 class AccountGroup(models.Model):
     _name = "account.group"
diff --git a/addons/account/models/partner.py b/addons/account/models/partner.py
index d8215c505d0ecd4601705db7e0f362d96335b34a..59b75f7f5660d10198f0aae262de15dd67391edb 100644
--- a/addons/account/models/partner.py
+++ b/addons/account/models/partner.py
@@ -667,3 +667,11 @@ class ResPartner(models.Model):
         :return: an array of ir.model.fields for which the user should provide values.
         """
         return []
+
+    def _merge_method(self, destination, source):
+        """
+        Prevent merging partners that are linked to already hashed journal items.
+        """
+        if self.env['account.move.line'].search([('move_id.inalterable_hash', '!=', False), ('partner_id', 'in', source.ids)], limit=1):
+            raise UserError(_('Partners that are used in hashed entries cannot be merged.'))
+        return super()._merge_method(destination, source)
diff --git a/odoo/addons/base/wizard/base_partner_merge.py b/odoo/addons/base/wizard/base_partner_merge.py
index 85df8df4506ffb638345d1f9d75b8d23de741b12..1a64897c0aa6917bfaed311fbb8b9b8e8171880f 100644
--- a/odoo/addons/base/wizard/base_partner_merge.py
+++ b/odoo/addons/base/wizard/base_partner_merge.py
@@ -322,10 +322,6 @@ class MergePartnerAutomatic(models.TransientModel):
             src_partners = ordered_partners[:-1]
         _logger.info("dst_partner: %s", dst_partner.id)
 
-        # FIXME: is it still required to make and exception for account.move.line since accounting v9.0 ?
-        if extra_checks and 'account.move.line' in self.env and self.env['account.move.line'].sudo().search([('partner_id', 'in', [partner.id for partner in src_partners])]):
-            raise UserError(_("Only the destination contact may be linked to existing Journal Items. Please ask the Administrator if you need to merge several contacts linked to existing Journal Items."))
-
         # Make the company of all related users consistent with destination partner company
         if dst_partner.company_id:
             partner_ids.mapped('user_ids').sudo().write({