diff --git a/selling/doctype/opportunity/opportunity.py b/selling/doctype/opportunity/opportunity.py
index c8c41e3..dfb124b 100644
--- a/selling/doctype/opportunity/opportunity.py
+++ b/selling/doctype/opportunity/opportunity.py
@@ -70,10 +70,6 @@
 		return ret
 		
 	def on_update(self):
-		# Add to calendar
-		if self.doc.contact_date and self.doc.contact_date_ref != self.doc.contact_date:
-			webnotes.conn.set(self.doc, 'contact_date_ref',self.doc.contact_date)
-
 		self.add_calendar_event()
 
 	def add_calendar_event(self, opts=None, force=False):
@@ -102,12 +98,11 @@
 		super(DocType, self).add_calendar_event(opts, force)
 
 	def set_last_contact_date(self):
-		if self.doc.contact_date_ref and self.doc.contact_date_ref != self.doc.contact_date:
-			if getdate(self.doc.contact_date_ref) < getdate(self.doc.contact_date):
-				self.doc.last_contact_date=self.doc.contact_date_ref
+		if self.doc.contact_date:
+			if not self.doc.last_contact_date or (getdate(self.doc.last_contact_date) <= getdate(self.doc.contact_date)):
+				self.doc.last_contact_date = self.doc.contact_date
 			else:
-				msgprint("Contact Date Cannot be before Last Contact Date")
-				raise Exception
+				webnotes.throw(webnotes._("Contact Date Cannot be before Last Contact Date"))
 
 	def validate_item_details(self):
 		if not getlist(self.doclist, 'enquiry_details'):
diff --git a/selling/doctype/quotation/quotation.py b/selling/doctype/quotation/quotation.py
index 44a67fa..8eb3654 100644
--- a/selling/doctype/quotation/quotation.py
+++ b/selling/doctype/quotation/quotation.py
@@ -4,7 +4,7 @@
 from __future__ import unicode_literals
 import webnotes
 
-from webnotes.utils import cstr, getdate
+from webnotes.utils import cstr
 from webnotes.model.bean import getlist
 from webnotes.model.code import get_obj
 from webnotes import _, msgprint
@@ -93,19 +93,6 @@
 					msgprint("You can not select non sales item "+d.item_code+" in Sales Quotation")
 					raise Exception
 	
-	#--------------Validation For Last Contact Date-----------------
-	# ====================================================================================================================
-	def set_last_contact_date(self):
-		#if not self.doc.contact_date_ref:
-			#self.doc.contact_date_ref=self.doc.contact_date
-			#self.doc.last_contact_date=self.doc.contact_date_ref
-		if self.doc.contact_date_ref and self.doc.contact_date_ref != self.doc.contact_date:
-			if getdate(self.doc.contact_date_ref) < getdate(self.doc.contact_date):
-				self.doc.last_contact_date=self.doc.contact_date_ref
-			else:
-				msgprint("Contact Date Cannot be before Last Contact Date")
-				raise Exception
-
 	def validate(self):
 		super(DocType, self).validate()
 		
@@ -116,7 +103,6 @@
 			utilities.validate_status(self.doc.status, ["Draft", "Submitted", 
 				"Order Confirmed", "Order Lost", "Cancelled"])
 
-		self.set_last_contact_date()
 		self.validate_order_type()
 		self.validate_for_items()
 
