diff --git a/addons/l10n_de/migrations/2.0/pre-migrate.py b/addons/l10n_de/migrations/2.0/pre-migrate.py
index bd930c80daaa069765b5a8709cd60a1b8d4284eb..188619c0e90af0df56642c02d4afc27804f917f4 100644
--- a/addons/l10n_de/migrations/2.0/pre-migrate.py
+++ b/addons/l10n_de/migrations/2.0/pre-migrate.py
@@ -25,3 +25,12 @@ def migrate(cr, version):
     rename_tag(cr, "tag_de_liabilities_bs_D_8", "tag_de_liabilities_bs_C_8")
     rename_tag(cr, "tag_de_liabilities_bs_E", "tag_de_liabilities_bs_D")
     rename_tag(cr, "tag_de_liabilities_bs_F", "tag_de_liabilities_bs_E")
+
+    # By deleting tag B from ir_model_data we ensure that the ORM won't try to remove this record.
+    # This is done because the tag might be already used as a FK somewhere else.
+    cr.execute(
+        """DELETE FROM ir_model_data
+           WHERE module='l10n_de'
+           AND name='tag_de_liabilities_bs_B'
+        """
+    )