diff --git a/accounts/doctype/sales_invoice/sales_invoice.js b/accounts/doctype/sales_invoice/sales_invoice.js
index 8df91a5..a24e256 100644
--- a/accounts/doctype/sales_invoice/sales_invoice.js
+++ b/accounts/doctype/sales_invoice/sales_invoice.js
@@ -29,6 +29,7 @@
 // On Load
 // -------
 cur_frm.cscript.onload = function(doc,dt,dn) {
+	cur_frm.cscript.manage_rounded_total();
 	if(!doc.customer && doc.debit_to) wn.meta.get_docfield(dt, 'debit_to', dn).print_hide = 0;
 	if (doc.__islocal) {
 		if(!doc.due_date) set_multiple(dt,dn,{due_date:get_today()});
diff --git a/controllers/selling_controller.py b/controllers/selling_controller.py
index 5ff5637..94a56e3 100644
--- a/controllers/selling_controller.py
+++ b/controllers/selling_controller.py
@@ -16,6 +16,7 @@
 
 from __future__ import unicode_literals
 import webnotes
+from webnotes.utils import cint
 from setup.utils import get_company_currency
 
 from controllers.accounts_controller import AccountsController
@@ -27,8 +28,13 @@
 	def set_total_in_words(self):
 		from webnotes.utils import money_in_words
 		company_currency = get_company_currency(self.doc.company)
+		
+		disable_rounded_total = cint(webnotes.conn.get_value("Global Defaults", None, 
+			"disable_rounded_total"))
+			
 		if self.meta.get_field("in_words"):
-			self.doc.in_words = money_in_words(self.doc.rounded_total, company_currency)
+			self.doc.in_words = money_in_words(disable_rounded_total and 
+				self.doc.grand_total or self.doc.rounded_total, company_currency)
 		if self.meta.get_field("in_words_export"):
-			self.doc.in_words_export = money_in_words(self.doc.rounded_total_export,
-		 		self.doc.currency)
\ No newline at end of file
+			self.doc.in_words_export = money_in_words(disable_rounded_total and 
+				self.doc.grand_total_export or self.doc.rounded_total_export, self.doc.currency)
\ No newline at end of file
diff --git a/selling/doctype/quotation/quotation.js b/selling/doctype/quotation/quotation.js
index a4d8ee6..cf7b515 100644
--- a/selling/doctype/quotation/quotation.js
+++ b/selling/doctype/quotation/quotation.js
@@ -28,6 +28,7 @@
 // ONLOAD
 // ===================================================================================
 cur_frm.cscript.onload = function(doc, cdt, cdn) {
+	cur_frm.cscript.manage_rounded_total();
 	if(!doc.quotation_to) hide_field(['customer','customer_address','contact_person','customer_name','lead', 'lead_name', 'address_display', 'contact_display', 'contact_mobile', 'contact_email', 'territory', 'customer_group']);
 	if(!doc.price_list_name) set_multiple(cdt,cdn,{price_list_name:sys_defaults.price_list_name});
 	if(!doc.status) set_multiple(cdt,cdn,{status:'Draft'});
diff --git a/selling/doctype/sales_common/sales_common.js b/selling/doctype/sales_common/sales_common.js
index 6a618c9..867a711 100644
--- a/selling/doctype/sales_common/sales_common.js
+++ b/selling/doctype/sales_common/sales_common.js
@@ -182,27 +182,37 @@
 						if (doc.plc_conversion_rate != 1) 
 							set_multiple(cdt, cdn, {plc_conversion_rate:1})
 						hide_field(['price_list_currency', 'plc_conversion_rate']);
-					}					
+					}
 				}
 
 				if (r.message[1] == doc.currency) {
 					if (doc.conversion_rate != 1) 
 						set_multiple(cdt, cdn, {conversion_rate:1});
 					hide_field(['conversion_rate', 'grand_total_export', 'in_words_export', 'rounded_total_export']);
-				} else unhide_field(['conversion_rate', 'grand_total_export', 'in_words_export', 'rounded_total_export']);
-
+				} else {
+					unhide_field(['conversion_rate', 'grand_total_export', 'in_words_export']);
+					if(!cint(sys_defaults.disable_rounded_total))
+						unhide_field("rounded_total_export");
+				}
 				if (r.message[1] == doc.price_list_currency) {
 					if (doc.plc_conversion_rate != 1) 
 						set_multiple(cdt, cdn, {plc_conversion_rate:1});
 					hide_field('plc_conversion_rate');
 				} else unhide_field('plc_conversion_rate');
-				
 				cur_frm.cscript.dynamic_label(doc, cdt, cdn, r.message[1], callback1);	
 			}
 		})
 	}
 }
 
+cur_frm.cscript.manage_rounded_total = function() {
+	if(cint(sys_defaults.disable_rounded_total)) {
+		cur_frm.set_df_property("rounded_total", "print_hide", 1);
+		cur_frm.set_df_property("rounded_total_export", "print_hide", 1);
+		hide_field(["rounded_total", "rounded_total_export"]);
+	}
+}
+
 // TRIGGERS FOR CALCULATIONS
 // =====================================================================================================
 
diff --git a/selling/doctype/sales_order/sales_order.js b/selling/doctype/sales_order/sales_order.js
index 55854b5..9b1df88 100644
--- a/selling/doctype/sales_order/sales_order.js
+++ b/selling/doctype/sales_order/sales_order.js
@@ -28,6 +28,8 @@
 
 
 cur_frm.cscript.onload = function(doc, cdt, cdn) {
+	cur_frm.cscript.manage_rounded_total();
+	
 	if(!doc.status) set_multiple(cdt,cdn,{status:'Draft'});
 	if(!doc.transaction_date) set_multiple(cdt,cdn,{transaction_date:get_today()});
 	if(!doc.price_list_currency) set_multiple(cdt, cdn, {price_list_currency: doc.currency, plc_conversion_rate: 1});
diff --git a/setup/doctype/global_defaults/global_defaults.py b/setup/doctype/global_defaults/global_defaults.py
index 1b93e7e..69961e8 100644
--- a/setup/doctype/global_defaults/global_defaults.py
+++ b/setup/doctype/global_defaults/global_defaults.py
@@ -40,7 +40,8 @@
 	'account_url':'account_url',
 	'allow_negative_stock' : 'allow_negative_stock',
 	'maintain_same_rate' : 'maintain_same_rate',
-	'session_expiry': 'session_expiry'
+	'session_expiry': 'session_expiry',
+	'disable_rounded_total': 'disable_rounded_total',
 }
 
 class DocType:
diff --git a/setup/doctype/global_defaults/global_defaults.txt b/setup/doctype/global_defaults/global_defaults.txt
index 3344a87..68f6459 100644
--- a/setup/doctype/global_defaults/global_defaults.txt
+++ b/setup/doctype/global_defaults/global_defaults.txt
@@ -1,8 +1,8 @@
 [
  {
-  "creation": "2013-01-29 19:25:56", 
+  "creation": "2013-02-19 12:28:27", 
   "docstatus": 0, 
-  "modified": "2013-02-13 09:56:28", 
+  "modified": "2013-02-20 14:08:59", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -27,6 +27,8 @@
   "permlevel": 0
  }, 
  {
+  "amend": 0, 
+  "cancel": 0, 
   "create": 1, 
   "doctype": "DocPerm", 
   "name": "__common__", 
@@ -333,6 +335,13 @@
   "options": "No\nYes"
  }, 
  {
+  "description": "If disable, 'Rounded Total' field will not be visible in any transaction", 
+  "doctype": "DocField", 
+  "fieldname": "disable_rounded_total", 
+  "fieldtype": "Check", 
+  "label": "Disable Rounded Total"
+ }, 
+ {
   "doctype": "DocField", 
   "fieldname": "buying", 
   "fieldtype": "Section Break", 
@@ -409,11 +418,6 @@
   "label": "SMS Sender Name"
  }, 
  {
-  "amend": 0, 
-  "cancel": 0, 
-  "doctype": "DocPerm"
- }, 
- {
   "doctype": "DocPerm"
  }
 ]
\ No newline at end of file
diff --git a/stock/doctype/delivery_note/delivery_note.js b/stock/doctype/delivery_note/delivery_note.js
index 09a7de2..a8af107 100644
--- a/stock/doctype/delivery_note/delivery_note.js
+++ b/stock/doctype/delivery_note/delivery_note.js
@@ -27,6 +27,7 @@
 // ONLOAD
 // ================================================================================================
 cur_frm.cscript.onload = function(doc, dt, dn) {
+	cur_frm.cscript.manage_rounded_total();
 	if(!doc.status) set_multiple(dt,dn,{status:'Draft'});
 	if(!doc.transaction_date) set_multiple(dt,dn,{transaction_date:get_today()});
 	if(!doc.posting_date) set_multiple(dt,dn,{posting_date:get_today()});
