diff --git a/erpnext/__init__.py b/erpnext/__init__.py
index 7b247f6..a7ec84a 100644
--- a/erpnext/__init__.py
+++ b/erpnext/__init__.py
@@ -5,7 +5,7 @@
 from erpnext.hooks import regional_overrides
 from frappe.utils import getdate
 
-__version__ = '10.1.52'
+__version__ = '10.1.53'
 
 def get_default_company(user=None):
 	'''Get default company for user'''
diff --git a/erpnext/accounts/report/accounts_receivable/accounts_receivable.py b/erpnext/accounts/report/accounts_receivable/accounts_receivable.py
index 186d86a..98a6d43 100644
--- a/erpnext/accounts/report/accounts_receivable/accounts_receivable.py
+++ b/erpnext/accounts/report/accounts_receivable/accounts_receivable.py
@@ -253,14 +253,16 @@
 
 		for e in self.get_gl_entries_for(gle.party, gle.party_type, gle.voucher_type, gle.voucher_no):
 			if getdate(e.posting_date) <= report_date and e.name!=gle.name:
-				amount = flt(e.get(reverse_dr_or_cr)) - flt(e.get(dr_or_cr))
+				amount = flt(e.get(reverse_dr_or_cr), currency_precision) - flt(e.get(dr_or_cr), currency_precision)
 				if e.voucher_no not in return_entries:
 					payment_amount += amount
 				else:
 					credit_note_amount += amount
 
-		outstanding_amount = flt((flt(gle.get(dr_or_cr)) - flt(gle.get(reverse_dr_or_cr)) \
-			- payment_amount - credit_note_amount), currency_precision)
+		outstanding_amount = (flt((flt(gle.get(dr_or_cr), currency_precision)
+			- flt(gle.get(reverse_dr_or_cr), currency_precision)
+			- payment_amount - credit_note_amount), currency_precision))
+
 		credit_note_amount = flt(credit_note_amount, currency_precision)
 
 		return outstanding_amount, credit_note_amount
diff --git a/erpnext/hr/doctype/salary_slip/salary_slip.py b/erpnext/hr/doctype/salary_slip/salary_slip.py
index 5f195d9..3ee98e6 100644
--- a/erpnext/hr/doctype/salary_slip/salary_slip.py
+++ b/erpnext/hr/doctype/salary_slip/salary_slip.py
@@ -181,7 +181,8 @@
 			if len(st_name) > 1:
 				frappe.msgprint(_("Multiple active Salary Structures found for employee {0} for the given dates")
 					.format(self.employee), title=_('Warning'))
-			return st_name and st_name[0][0] or ''
+			self.salary_structure = st_name and st_name[0][0] or ''
+			return self.salary_structure
 		else:
 			self.salary_structure = None
 			frappe.msgprint(_("No active or default Salary Structure found for employee {0} for the given dates")
diff --git a/erpnext/templates/print_formats/includes/taxes.html b/erpnext/templates/print_formats/includes/taxes.html
index db17c65..377f9a3 100644
--- a/erpnext/templates/print_formats/includes/taxes.html
+++ b/erpnext/templates/print_formats/includes/taxes.html
@@ -2,7 +2,7 @@
 	{%- if doc.discount_amount -%}
 		<div class="row">
 			<div class="col-xs-5 {%- if doc._align_labels_right %} text-right{%- endif -%}">
-				<label>{{ _("Discount Amount") }}</label></div>
+				<label>{{ _(doc.meta.get_label('discount_amount')) }}</label></div>
 			<div class="col-xs-7 text-right">
 				- {{ doc.get_formatted("discount_amount", doc) }}
 			</div>
