diff --git a/accounts/doctype/sales_invoice/sales_invoice.js b/accounts/doctype/sales_invoice/sales_invoice.js
index a4bbb2a..35ea831 100644
--- a/accounts/doctype/sales_invoice/sales_invoice.js
+++ b/accounts/doctype/sales_invoice/sales_invoice.js
@@ -60,7 +60,7 @@
 
 			cur_frm.add_custom_button('Send SMS', cur_frm.cscript.send_sms);
 
-			if(doc.is_pos==1 && doc.update_stock!=1)
+			if(cint(doc.update_stock)!=1)
 				cur_frm.add_custom_button('Make Delivery', cur_frm.cscript['Make Delivery Note']);
 
 			if(doc.outstanding_amount!=0)
diff --git a/accounts/doctype/sales_invoice/sales_invoice.py b/accounts/doctype/sales_invoice/sales_invoice.py
index ceab40a..d875247 100644
--- a/accounts/doctype/sales_invoice/sales_invoice.py
+++ b/accounts/doctype/sales_invoice/sales_invoice.py
@@ -983,3 +983,49 @@
 				and tabAccount.%(key)s LIKE '%(txt)s'
 				%(mcond)s""" % {'company': filters['company'], 'key': searchfield, 
 			'txt': "%%%s%%" % txt, 'mcond':get_match_cond(doctype, searchfield)})
+
+
+@webnotes.whitelist()
+def make_delivery_note(source_name, target_doclist=None):
+	from webnotes.model.mapper import get_mapped_doclist
+	
+	def set_missing_values(source, target):
+		bean = webnotes.bean(target)
+		bean.run_method("onload_post_render")
+		
+	def update_item(obj, target, source_parent):
+		target.amount = (flt(obj.qty) - flt(obj.delivered_qty)) * flt(obj.basic_rate)
+		target.export_amount = (flt(obj.qty) - flt(obj.delivered_qty)) * flt(obj.export_rate)
+		target.qty = flt(obj.qty) - flt(obj.delivered_qty)
+	
+	doclist = get_mapped_doclist("Sales Invoice", source_name, 	{
+		"Sales Invoice": {
+			"doctype": "Delivery Note", 
+			"validation": {
+				"docstatus": ["=", 1]
+			}
+		}, 
+		"Sales Invoice Item": {
+			"doctype": "Delivery Note Item", 
+			"field_map": {
+				"name": "prevdoc_detail_docname", 
+				"parent": "prevdoc_docname", 
+				"parenttype": "prevdoc_doctype",
+				"serial_no": "serial_no"
+			},
+			"postprocess": update_item
+		}, 
+		"Sales Taxes and Charges": {
+			"doctype": "Sales Taxes and Charges", 
+			"add_if_empty": True
+		}, 
+		"Sales Team": {
+			"doctype": "Sales Team", 
+			"field_map": {
+				"incentives": "incentives"
+			},
+			"add_if_empty": True
+		}
+	}, target_doclist, set_missing_values)
+	
+	return [d.fields for d in doclist]
\ No newline at end of file
diff --git a/patches/patch_list.py b/patches/patch_list.py
index 9b6bb0f..dc9f34d 100644
--- a/patches/patch_list.py
+++ b/patches/patch_list.py
@@ -262,4 +262,5 @@
 	"patches.july_2013.p08_custom_print_format_net_total_export",
 	"patches.july_2013.p09_remove_website_pyc",
 	"patches.july_2013.p10_change_partner_user_to_website_user",
+	"execute:webnotes.bean('Selling Settings').save()",
 ]
\ No newline at end of file
diff --git a/selling/doctype/selling_settings/selling_settings.py b/selling/doctype/selling_settings/selling_settings.py
index 4716228..febf375 100644
--- a/selling/doctype/selling_settings/selling_settings.py
+++ b/selling/doctype/selling_settings/selling_settings.py
@@ -8,5 +8,5 @@
 		self.doc, self.doclist = d, dl
 		
 	def validate(self):
-		for key in ["cust_master_name", "customer_group", "territory", "allow_same_sales_rate"]:
+		for key in ["cust_master_name", "customer_group", "territory", "maintain_same_sales_rate"]:
 			webnotes.conn.set_default(key, self.doc.fields.get(key, ""))
diff --git a/stock/doctype/delivery_note/delivery_note.py b/stock/doctype/delivery_note/delivery_note.py
index f7283eb..3f8a438 100644
--- a/stock/doctype/delivery_note/delivery_note.py
+++ b/stock/doctype/delivery_note/delivery_note.py
@@ -113,21 +113,24 @@
 		if not self.doc.installation_status: self.doc.installation_status = 'Not Installed'	
 		
 	def validate_with_previous_doc(self):
-		super(DocType, self).validate_with_previous_doc(self.tname, {
-			"Sales Order": {
-				"ref_dn_field": "prevdoc_docname",
-				"compare_fields": [["customer", "="], ["company", "="], ["project_name", "="],
-					["currency", "="]],
-			},
-		})
-		if cint(webnotes.defaults.get_global_default('maintain_same_sales_rate')):
+		prev_doctype = [d.prevdoc_doctype for d in self.doclist.get({
+			"parentfield": "delivery_note_details", "prevdoc_doctype": ["!=", ""]})]
+		if prev_doctype:
 			super(DocType, self).validate_with_previous_doc(self.tname, {
-				"Sales Order Item": {
-					"ref_dn_field": "prevdoc_detail_docname",
-					"compare_fields": [["export_rate", "="]],
-					"is_child_table": True
-				}
+				prev_doctype[0]: {
+					"ref_dn_field": "prevdoc_docname",
+					"compare_fields": [["customer", "="], ["company", "="], ["project_name", "="],
+						["currency", "="]],
+				},
 			})
+			if cint(webnotes.defaults.get_global_default('maintain_same_sales_rate')):
+				super(DocType, self).validate_with_previous_doc(self.tname, {
+					prev_doctype[0] + " Item": {
+						"ref_dn_field": "prevdoc_detail_docname",
+						"compare_fields": [["export_rate", "="]],
+						"is_child_table": True
+					}
+				})
 			
 		
 	def validate_proj_cust(self):
