diff --git a/odoo/addons/base/res/res_partner.py b/odoo/addons/base/res/res_partner.py
index 74751b86f7b..81d0aa04d64 100644
--- a/odoo/addons/base/res/res_partner.py
+++ b/odoo/addons/base/res/res_partner.py
@@ -350,11 +350,6 @@ class Partner(models.Model, FormatAddress):
result['value'] = {key: convert(self.parent_id[key]) for key in address_fields}
return result
- @api.onchange('state_id')
- def onchange_state(self):
- if self.state_id:
- self.country_id = self.state_id.country_id
-
@api.onchange('email')
def onchange_email(self):
if not self.image and not self._context.get('yaml_onchange') and self.email:
diff --git a/odoo/addons/base/res/res_partner_view.xml b/odoo/addons/base/res/res_partner_view.xml
index 92d4c41db55..03caeffae68 100644
--- a/odoo/addons/base/res/res_partner_view.xml
+++ b/odoo/addons/base/res/res_partner_view.xml
@@ -110,7 +110,9 @@
-
+
@@ -173,7 +175,9 @@
+ attrs="{'readonly': [('type', '=', 'contact'),('parent_id', '!=', False)]}"
+ context="{'country_id': country_id, 'zip': zip}"
+ domain="[('country_id', '=', country_id')]"/>