fix: update lead if contact details are changed
diff --git a/erpnext/crm/utils.py b/erpnext/crm/utils.py
new file mode 100644
index 0000000..72d778e
--- /dev/null
+++ b/erpnext/crm/utils.py
@@ -0,0 +1,24 @@
+import frappe
+
+
+def update_lead_phone_numbers(contact, method):
+	if contact.phone_nos:
+		contact_lead = contact.get_link_for("Lead")
+		if contact_lead:
+			phone = mobile_no = contact.phone_nos[0].phone
+
+			if len(contact.phone_nos) > 1:
+				# get the default phone number
+				primary_phones = [phone.phone for phone in contact.phone_nos if phone.is_primary_phone]
+				if primary_phones:
+					phone = primary_phones[0]
+
+				# get the default mobile number
+				primary_mobile_nos = [phone.phone for phone in contact.phone_nos if phone.is_primary_mobile_no]
+				if primary_mobile_nos:
+					mobile_no = primary_mobile_nos[0]
+
+			lead = frappe.get_doc("Lead", contact_lead)
+			lead.phone = phone
+			lead.mobile_no = mobile_no
+			lead.save()
diff --git a/erpnext/hooks.py b/erpnext/hooks.py
index e6f6c8e..6b198e7 100644
--- a/erpnext/hooks.py
+++ b/erpnext/hooks.py
@@ -250,7 +250,8 @@
 	},
 	"Contact": {
 		"on_trash": "erpnext.support.doctype.issue.issue.update_issue",
-		"after_insert": "erpnext.communication.doctype.call_log.call_log.set_caller_information"
+		"after_insert": "erpnext.communication.doctype.call_log.call_log.set_caller_information",
+		"validate": "erpnext.crm.utils.update_lead_phone_numbers"
 	},
 	"Lead": {
 		"after_insert": "erpnext.communication.doctype.call_log.call_log.set_caller_information"
@@ -537,4 +538,4 @@
 		{'doctype': 'Hotel Room Package', 'index': 3},
 		{'doctype': 'Hotel Room Type', 'index': 4}
 	]
-}
\ No newline at end of file
+}