diff --git a/erpnext/patches.txt b/erpnext/patches.txt
index 287d962..65c646a 100644
--- a/erpnext/patches.txt
+++ b/erpnext/patches.txt
@@ -218,9 +218,13 @@
 erpnext.patches.v6_4.fix_modified_in_sales_order_and_purchase_order
 erpnext.patches.v6_4.fix_duplicate_bins
 erpnext.patches.v6_4.fix_sales_order_maintenance_status
+<<<<<<< HEAD
 erpnext.patches.v6_4.email_digest_update
 
 # delete shopping cart doctypes
 execute:frappe.delete_doc_if_exists("DocType", "Applicable Territory")
 execute:frappe.delete_doc_if_exists("DocType", "Shopping Cart Price List")
 execute:frappe.delete_doc_if_exists("DocType", "Shopping Cart Taxes and Charges Master")
+=======
+erpnext.patches.v6_4.set_user_in_contact
+>>>>>>> [minor] Added 'Invite User' in Contact
diff --git a/erpnext/patches/v6_4/set_user_in_contact.py b/erpnext/patches/v6_4/set_user_in_contact.py
new file mode 100644
index 0000000..509114b
--- /dev/null
+++ b/erpnext/patches/v6_4/set_user_in_contact.py
@@ -0,0 +1,5 @@
+import frappe
+
+def execute():
+	frappe.db.sql("""update tabContact, tabUser set tabContact.user = tabUser.name
+		where tabContact.email_id = tabUser.email""")
diff --git a/erpnext/utilities/doctype/contact/contact.js b/erpnext/utilities/doctype/contact/contact.js
index e8aae14..7b64b76 100644
--- a/erpnext/utilities/doctype/contact/contact.js
+++ b/erpnext/utilities/doctype/contact/contact.js
@@ -4,11 +4,28 @@
 {% include 'controllers/js/contact_address_common.js' %};
 
 cur_frm.email_field = "email_id";
-frappe.ui.form.on("Contact", "validate", function(frm) {
-	// clear linked customer / supplier / sales partner on saving...
-	$.each(["Customer", "Supplier", "Sales Partner"], function(i, doctype) {
-		var name = frm.doc[doctype.toLowerCase().replace(/ /g, "_")];
-		if(name && locals[doctype] && locals[doctype][name])
-			frappe.model.remove_from_locals(doctype, name);
-	});
+frappe.ui.form.on("Contact", {
+	refresh: function(frm) {
+		if(!frm.doc.user && !frm.is_new() && frm.perm[0].write) {
+			frm.add_custom_button(__("Invite as User"), function() {
+				frappe.call({
+					method: "erpnext.utilities.doctype.contact.contact.invite_user",
+					args: {
+						contact: frm.doc.name
+					},
+					callback: function(r) {
+						frm.set_value("user", r.message);
+					}
+				});
+			});
+		}
+	},
+	validate: function(frm) {
+		// clear linked customer / supplier / sales partner on saving...
+		$.each(["Customer", "Supplier", "Sales Partner"], function(i, doctype) {
+			var name = frm.doc[doctype.toLowerCase().replace(/ /g, "_")];
+			if(name && locals[doctype] && locals[doctype][name])
+				frappe.model.remove_from_locals(doctype, name);
+		});
+	}
 });
diff --git a/erpnext/utilities/doctype/contact/contact.json b/erpnext/utilities/doctype/contact/contact.json
index dac13c2..d50313f 100644
--- a/erpnext/utilities/doctype/contact/contact.json
+++ b/erpnext/utilities/doctype/contact/contact.json
@@ -80,22 +80,23 @@
    "allow_on_submit": 0,
    "bold": 0,
    "collapsible": 0,
-   "fieldname": "user",
-   "fieldtype": "Link",
+   "fieldname": "email_id",
+   "fieldtype": "Data",
    "hidden": 0,
    "ignore_user_permissions": 0,
    "in_filter": 0,
    "in_list_view": 0,
-   "label": "User Id",
+   "label": "Email Id",
    "no_copy": 0,
-   "options": "User",
+   "oldfieldname": "email_id",
+   "oldfieldtype": "Data",
+   "options": "Email",
    "permlevel": 0,
-   "precision": "",
    "print_hide": 0,
    "read_only": 0,
    "report_hide": 0,
    "reqd": 0,
-   "search_index": 0,
+   "search_index": 1,
    "set_only_once": 0,
    "unique": 0
   },
@@ -147,30 +148,6 @@
    "allow_on_submit": 0,
    "bold": 0,
    "collapsible": 0,
-   "fieldname": "email_id",
-   "fieldtype": "Data",
-   "hidden": 0,
-   "ignore_user_permissions": 0,
-   "in_filter": 0,
-   "in_list_view": 0,
-   "label": "Email Id",
-   "no_copy": 0,
-   "oldfieldname": "email_id",
-   "oldfieldtype": "Data",
-   "options": "Email",
-   "permlevel": 0,
-   "print_hide": 0,
-   "read_only": 0,
-   "report_hide": 0,
-   "reqd": 0,
-   "search_index": 1,
-   "set_only_once": 0,
-   "unique": 0
-  },
-  {
-   "allow_on_submit": 0,
-   "bold": 0,
-   "collapsible": 0,
    "fieldname": "phone",
    "fieldtype": "Data",
    "hidden": 0,
@@ -216,6 +193,29 @@
    "allow_on_submit": 0,
    "bold": 0,
    "collapsible": 0,
+   "fieldname": "user",
+   "fieldtype": "Link",
+   "hidden": 0,
+   "ignore_user_permissions": 0,
+   "in_filter": 0,
+   "in_list_view": 0,
+   "label": "User Id",
+   "no_copy": 0,
+   "options": "User",
+   "permlevel": 0,
+   "precision": "",
+   "print_hide": 0,
+   "read_only": 0,
+   "report_hide": 0,
+   "reqd": 0,
+   "search_index": 0,
+   "set_only_once": 0,
+   "unique": 0
+  },
+  {
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
    "depends_on": "",
    "fieldname": "customer",
    "fieldtype": "Link",
@@ -494,7 +494,7 @@
  "is_submittable": 0,
  "issingle": 0,
  "istable": 0,
- "modified": "2015-10-07 00:26:20.667566",
+ "modified": "2015-10-07 00:38:08.152183",
  "modified_by": "Administrator",
  "module": "Utilities",
  "name": "Contact",
diff --git a/erpnext/utilities/doctype/contact/contact.py b/erpnext/utilities/doctype/contact/contact.py
index 314014f..bfab79f 100644
--- a/erpnext/utilities/doctype/contact/contact.py
+++ b/erpnext/utilities/doctype/contact/contact.py
@@ -3,7 +3,7 @@
 
 from __future__ import unicode_literals
 import frappe
-from frappe.utils import cstr, extract_email_id
+from frappe.utils import cstr
 
 from erpnext.controllers.status_updater import StatusUpdater
 
@@ -22,6 +22,11 @@
 	def validate(self):
 		self.set_status()
 		self.validate_primary_contact()
+		self.set_user()
+
+	def set_user(self):
+		if not self.user and self.email_id:
+			self.user = frappe.db.get_value("User", {"email": self.email_id})
 
 	def validate_primary_contact(self):
 		if self.is_primary_contact == 1:
@@ -54,6 +59,21 @@
 			self.name)
 
 @frappe.whitelist()
+def invite_user(contact):
+	contact = frappe.get_doc("Contact", contact)
+	if contact.has_permission("write"):
+		user = frappe.get_doc({
+			"doctype": "User",
+			"first_name": contact.first_name,
+			"last_name": contact.last_name,
+			"email": contact.email_id,
+			"user_type": "Website User",
+			"send_welcome_email": 1
+		}).insert(ignore_permissions = True)
+
+		return user.name
+
+@frappe.whitelist()
 def get_contact_details(contact):
 	contact = frappe.get_doc("Contact", contact)
 	out = {
