diff --git a/erpnext/accounts/doctype/sales_invoice/pos.py b/erpnext/accounts/doctype/sales_invoice/pos.py
index 261363c..7d4fc63 100755
--- a/erpnext/accounts/doctype/sales_invoice/pos.py
+++ b/erpnext/accounts/doctype/sales_invoice/pos.py
@@ -238,7 +238,7 @@
 		customers = [frappe._dict({'name': customers})]
 
 	for data in customers:
-		contact = frappe.db.sql(""" select email_id, phone from `tabContact`
+		contact = frappe.db.sql(""" select email_id, phone, mobile_no from `tabContact`
 			where is_primary_contact=1 and name in
 			(select parent from `tabDynamic Link` where link_doctype = 'Customer' and link_name = %s
 			and parenttype = 'Contact')""", data.name, as_dict=1)
diff --git a/erpnext/accounts/page/pos/pos.js b/erpnext/accounts/page/pos/pos.js
index ff0c265..8dc00f3 100755
--- a/erpnext/accounts/page/pos/pos.js
+++ b/erpnext/accounts/page/pos/pos.js
@@ -817,6 +817,7 @@
 				if(reg.test(data.name.toLowerCase())
 					|| reg.test(data.customer_name.toLowerCase())
 					|| (contact && reg.test(contact["phone"]))
+					|| (contact && reg.test(contact["mobile_no"]))
 					|| (data.customer_group && reg.test(data.customer_group.toLowerCase()))){
 						return data;
 				}
@@ -833,6 +834,7 @@
 				if(contact && !c['phone']) {
 					c["phone"] = contact["phone"];
 					c["email_id"] = contact["email_id"];
+					c["mobile_no"] = contact["mobile_no"];
 				}
 
 				me.customers_mapper.push({
@@ -842,9 +844,10 @@
 					customer_group: c.customer_group,
 					territory: c.territory,
 					phone: contact ? contact["phone"] : '',
+					mobile_no: contact ? contact["mobile_no"] : '',
 					email_id: contact ? contact["email_id"] : '',
 					searchtext: ['customer_name', 'customer_group', 'name', 'value',
-						'label', 'email_id', 'phone']
+						'label', 'email_id', 'phone', 'mobile_no']
 						.map(key => c[key]).join(' ')
 						.toLowerCase()
 				});
diff --git a/erpnext/crm/doctype/opportunity/test_opportunity.py b/erpnext/crm/doctype/opportunity/test_opportunity.py
index 8f61edf..33d9007 100644
--- a/erpnext/crm/doctype/opportunity/test_opportunity.py
+++ b/erpnext/crm/doctype/opportunity/test_opportunity.py
@@ -53,7 +53,7 @@
 				"link_name": customer.name
 			}]
 		})
-		contact.add_email(new_lead_email_id)
+		contact.add_email(new_lead_email_id, is_primary=True)
 		contact.insert(ignore_permissions=True)
 
 		opp_doc = frappe.get_doc(args).insert(ignore_permissions=True)
diff --git a/erpnext/hub_node/legacy.py b/erpnext/hub_node/legacy.py
index 85eb1b2..b61b88b 100644
--- a/erpnext/hub_node/legacy.py
+++ b/erpnext/hub_node/legacy.py
@@ -73,7 +73,7 @@
 				{'link_doctype': 'Supplier', 'link_name': supplier.supplier_name}
 			]
 		})
-		contact.add_email(supplier.supplier_email)
+		contact.add_email(supplier.supplier_email, is_primary=True)
 		contact.insert()
 	else:
 		contact = frappe.get_doc('Contact', contact_name)
diff --git a/erpnext/selling/doctype/customer/customer.py b/erpnext/selling/doctype/customer/customer.py
index d49b9a9..a8e3ce4 100644
--- a/erpnext/selling/doctype/customer/customer.py
+++ b/erpnext/selling/doctype/customer/customer.py
@@ -350,8 +350,10 @@
 			'link_name': args.get('name')
 		}]
 	})
-	contact.add_email(args.get('email_id'))
-	contact.add_phone(args.get('mobile_no'))
+	if args.get('email_id'):
+		contact.add_email(args.get('email_id'), is_primary=True)
+	if args.get('mobile_no'):
+		contact.add_phone(args.get('mobile_no'), is_primary_mobile_no=True)
 	contact.insert()
 
 	return contact
diff --git a/erpnext/selling/doctype/sms_center/sms_center.py b/erpnext/selling/doctype/sms_center/sms_center.py
index 289b045..bb6ba1f 100644
--- a/erpnext/selling/doctype/sms_center/sms_center.py
+++ b/erpnext/selling/doctype/sms_center/sms_center.py
@@ -31,7 +31,7 @@
 					self.sales_partner.replace("'", "\'") or " and ifnull(dl.link_name, '') != ''"
 		if self.send_to in ['All Contact', 'All Customer Contact', 'All Supplier Contact', 'All Sales Partner Contact']:
 			rec = frappe.db.sql("""select CONCAT(ifnull(c.first_name,''), ' ', ifnull(c.last_name,'')),
-				c.phone from `tabContact` c, `tabDynamic Link` dl  where ifnull(c.phone,'')!='' and
+				c.mobile_no from `tabContact` c, `tabDynamic Link` dl  where ifnull(c.mobile_no,'')!='' and
 				c.docstatus != 2 and dl.parent = c.name%s""" % where_clause)
 
 		elif self.send_to == 'All Lead (Open)':
diff --git a/erpnext/tests/utils.py b/erpnext/tests/utils.py
index 7024b0d..dfd3ed7 100644
--- a/erpnext/tests/utils.py
+++ b/erpnext/tests/utils.py
@@ -10,27 +10,32 @@
 	frappe.db.sql('delete from tabAddress')
 	frappe.db.sql('delete from `tabDynamic Link`')
 
-	frappe.get_doc(dict(
-		doctype='Address',
-		address_title='_Test Address for Customer',
-		address_type='Office',
-		address_line1='Station Road',
-		city='_Test City',
-		state='Test State',
-		country='India',
-		links = [dict(
-			link_doctype='Customer',
-			link_name='_Test Customer'
-		)]
-	)).insert()
+	frappe.get_doc({
+		"doctype": "Address",
+		"address_title": "_Test Address for Customer",
+		"address_type": "Office",
+		"address_line1": "Station Road",
+		"city": "_Test City",
+		"state": "Test State",
+		"country": "India",
+		"links": [
+			{
+				"link_doctype": "Customer",
+				"link_name": "_Test Customer"
+			}
+		]
+	}).insert()
 
-	frappe.get_doc(dict(
-		doctype='Contact',
-		email_id='test_contact_customer@example.com',
-		phone='+91 0000000000',
-		first_name='_Test Contact for _Test Customer',
-		links = [dict(
-			link_doctype='Customer',
-			link_name='_Test Customer'
-		)]
-	)).insert()
+	contact = frappe.get_doc({
+		"doctype": 'Contact',
+		"first_name": "_Test Contact for _Test Customer",
+		"links": [
+			{
+				"link_doctype": "Customer",
+				"link_name": "_Test Customer"
+			}
+		]
+	})
+	contact.add_email("test_contact_customer@example.com", is_primary=True)
+	contact.add_phone("+91 0000000000", is_primary_phone=True)
+	contact.insert()
