diff --git a/accounts/doctype/sales_invoice/sales_invoice.py b/accounts/doctype/sales_invoice/sales_invoice.py
index 93fb47f..76e87b6 100644
--- a/accounts/doctype/sales_invoice/sales_invoice.py
+++ b/accounts/doctype/sales_invoice/sales_invoice.py
@@ -374,22 +374,27 @@
 				"compare_fields": [["customer", "="], ["company", "="], ["project_name", "="],
 					["currency", "="]],
 			},
-			"Sales Order Item": {
-				"ref_dn_field": "so_detail",
-				"compare_fields": [["export_rate", "="]],
-				"is_child_table": True
-			},
 			"Delivery Note": {
 				"ref_dn_field": "delivery_note",
 				"compare_fields": [["customer", "="], ["company", "="], ["project_name", "="],
 					["currency", "="]],
 			},
-			"Delivery Note Item": {
-				"ref_dn_field": "dn_detail",
-				"compare_fields": [["export_rate", "="]],
-				"is_child_table": True
-			}
 		})
+		
+		if cint(webnotes.defaults.get_global_default('maintain_same_sales_rate')):
+			super(DocType, self).validate_with_previous_doc(self.tname, {
+				"Sales Order Item": {
+					"ref_dn_field": "so_detail",
+					"compare_fields": [["export_rate", "="]],
+					"is_child_table": True
+				},
+				"Delivery Note Item": {
+					"ref_dn_field": "dn_detail",
+					"compare_fields": [["export_rate", "="]],
+					"is_child_table": True
+				}
+			})
+			
 
 	def set_aging_date(self):
 		if self.doc.is_opening != 'Yes':
@@ -975,4 +980,4 @@
 				and tabAccount.company = '%(company)s' 
 				and tabAccount.%(key)s LIKE '%(txt)s'
 				%(mcond)s""" % {'company': filters['company'], 'key': searchfield, 
-			'txt': "%%%s%%" % txt, 'mcond':get_match_cond(doctype, searchfield)})
\ No newline at end of file
+			'txt': "%%%s%%" % txt, 'mcond':get_match_cond(doctype, searchfield)})
diff --git a/accounts/report/purchase_register/purchase_register.py b/accounts/report/purchase_register/purchase_register.py
index 0970541..aa55a3b 100644
--- a/accounts/report/purchase_register/purchase_register.py
+++ b/accounts/report/purchase_register/purchase_register.py
@@ -54,7 +54,7 @@
 			row.append(expense_amount)
 		
 		# net total
-		row.append(net_total)
+		row.append(net_total or inv.net_total)
 			
 		# tax account
 		total_tax = 0
@@ -121,7 +121,7 @@
 def get_invoices(filters):
 	conditions = get_conditions(filters)
 	return webnotes.conn.sql("""select name, posting_date, credit_to, supplier, supplier_name, 
-		bill_no, bill_date, remarks, grand_total, outstanding_amount 
+		bill_no, bill_date, remarks, net_total, grand_total, outstanding_amount 
 		from `tabPurchase Invoice` where docstatus = 1 %s 
 		order by posting_date desc, name desc""" % conditions, filters, as_dict=1)
 	
diff --git a/accounts/report/sales_register/sales_register.py b/accounts/report/sales_register/sales_register.py
index 91ad1c2..653b5e6 100644
--- a/accounts/report/sales_register/sales_register.py
+++ b/accounts/report/sales_register/sales_register.py
@@ -54,7 +54,7 @@
 			row.append(income_amount)
 		
 		# net total
-		row.append(net_total)
+		row.append(net_total or inv.net_total)
 			
 		# tax account
 		total_tax = 0
@@ -120,7 +120,7 @@
 def get_invoices(filters):
 	conditions = get_conditions(filters)
 	return webnotes.conn.sql("""select name, posting_date, debit_to, project_name, customer, 
-		customer_name, remarks, grand_total, rounded_total, outstanding_amount 
+		customer_name, remarks, net_total, grand_total, rounded_total, outstanding_amount 
 		from `tabSales Invoice` 
 		where docstatus = 1 %s order by posting_date desc, name desc""" % 
 		conditions, filters, as_dict=1)
diff --git a/patches/july_2013/p01_same_sales_rate_patch.py b/patches/july_2013/p01_same_sales_rate_patch.py
new file mode 100644
index 0000000..82ec1db
--- /dev/null
+++ b/patches/july_2013/p01_same_sales_rate_patch.py
@@ -0,0 +1,7 @@
+def execute():
+	import webnotes
+	webnotes.reload_doc("setup", "doctype", "global_defaults")
+	
+	gd = webnotes.bean('Global Defaults')
+	gd.doc.maintain_same_sales_rate = 1
+	gd.save()
\ No newline at end of file
diff --git a/patches/july_2013/p06_same_sales_rate.py b/patches/july_2013/p06_same_sales_rate.py
new file mode 100644
index 0000000..67c1055
--- /dev/null
+++ b/patches/july_2013/p06_same_sales_rate.py
@@ -0,0 +1,13 @@
+def execute():
+	import webnotes
+	webnotes.reload_doc("selling", "doctype", "selling_settings")
+	ss = webnotes.bean("Selling Settings")
+	
+	same_rate = webnotes.conn.sql("""select field, value from `tabSingles` 
+		where doctype = 'Global Defaults' and field = 'maintain_same_sales_rate'"""):
+	if same_rate:
+		ss.doc.maintain_same_sales_rate = same_rate[1]
+	else:
+		ss.doc.maintain_same_sales_rate = 1
+	
+	ss.save()
\ No newline at end of file
diff --git a/patches/patch_list.py b/patches/patch_list.py
index 0c2a523..af02ebd 100644
--- a/patches/patch_list.py
+++ b/patches/patch_list.py
@@ -253,4 +253,5 @@
 	"execute:webnotes.bean('Style Settings').save() #2013-07-16",
 	"patches.july_2013.p04_merge_duplicate_leads",
 	"patches.july_2013.p05_custom_doctypes_in_list_view",
+	"patches.july_2013.p06_same_sales_rate",
 ]
\ 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 5a5dc4c..4716228 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"]:
+		for key in ["cust_master_name", "customer_group", "territory", "allow_same_sales_rate"]:
 			webnotes.conn.set_default(key, self.doc.fields.get(key, ""))
diff --git a/selling/doctype/selling_settings/selling_settings.txt b/selling/doctype/selling_settings/selling_settings.txt
index 35d256e..934cd41 100644
--- a/selling/doctype/selling_settings/selling_settings.txt
+++ b/selling/doctype/selling_settings/selling_settings.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-06-25 10:25:16", 
   "docstatus": 0, 
-  "modified": "2013-07-05 14:54:47", 
+  "modified": "2013-07-18 12:03:39", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -89,6 +89,12 @@
   "options": "No\nYes"
  }, 
  {
+  "doctype": "DocField", 
+  "fieldname": "maintain_same_sales_rate", 
+  "fieldtype": "Check", 
+  "label": "Maintain Same Rate Throughout Sales Cycle"
+ }, 
+ {
   "doctype": "DocPerm"
  }
 ]
\ No newline at end of file
diff --git a/setup/doctype/global_defaults/global_defaults.py b/setup/doctype/global_defaults/global_defaults.py
index 52a291f..9be8499 100644
--- a/setup/doctype/global_defaults/global_defaults.py
+++ b/setup/doctype/global_defaults/global_defaults.py
@@ -32,7 +32,8 @@
 	'float_precision': 'float_precision',
 	'account_url':'account_url',
 	'session_expiry': 'session_expiry',
-	'disable_rounded_total': 'disable_rounded_total'
+	'disable_rounded_total': 'disable_rounded_total',
+	'maintain_same_sales_rate' : 'maintain_same_sales_rate',
 }
 
 class DocType:
diff --git a/stock/doctype/delivery_note/delivery_note.py b/stock/doctype/delivery_note/delivery_note.py
index 24df878..6cc54b0 100644
--- a/stock/doctype/delivery_note/delivery_note.py
+++ b/stock/doctype/delivery_note/delivery_note.py
@@ -118,12 +118,16 @@
 				"compare_fields": [["customer", "="], ["company", "="], ["project_name", "="],
 					["currency", "="]],
 			},
-			"Sales Order Item": {
-				"ref_dn_field": "prevdoc_detail_docname",
-				"compare_fields": [["export_rate", "="]],
-				"is_child_table": True
-			}
 		})
+		if cint(webnotes.defaults.get_global_default('maintain_same_sales_rate')):
+			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
+				}
+			})
+			
 		
 	def validate_proj_cust(self):
 		"""check for does customer belong to same project as entered.."""
