diff --git a/erpnext/accounts/report/accounts_receivable/accounts_receivable.py b/erpnext/accounts/report/accounts_receivable/accounts_receivable.py
index 89fc52c..39fe5c4 100644
--- a/erpnext/accounts/report/accounts_receivable/accounts_receivable.py
+++ b/erpnext/accounts/report/accounts_receivable/accounts_receivable.py
@@ -68,6 +68,7 @@
 				"label": _("Currency"),
 				"fieldtype": "Data",
 				"width": 100,
+				"hidden": 1
 			},
 			_("Remarks") + "::200"
 		]
diff --git a/erpnext/accounts/report/balance_sheet/balance_sheet.py b/erpnext/accounts/report/balance_sheet/balance_sheet.py
index 65d429c..0a2a9e3 100644
--- a/erpnext/accounts/report/balance_sheet/balance_sheet.py
+++ b/erpnext/accounts/report/balance_sheet/balance_sheet.py
@@ -13,7 +13,8 @@
 	asset = get_data(filters.company, "Asset", "Debit", period_list)
 	liability = get_data(filters.company, "Liability", "Credit", period_list)
 	equity = get_data(filters.company, "Equity", "Credit", period_list)
-	provisional_profit_loss = get_provisional_profit_loss(asset, liability, equity, period_list)
+	provisional_profit_loss = get_provisional_profit_loss(asset, liability, equity, 
+		period_list, filters.company)
 
 	data = []
 	data.extend(asset or [])
@@ -26,12 +27,13 @@
 
 	return columns, data
 
-def get_provisional_profit_loss(asset, liability, equity, period_list):
+def get_provisional_profit_loss(asset, liability, equity, period_list, company):
 	if asset and (liability or equity):
 		provisional_profit_loss = {
 			"account_name": "'" + _("Provisional Profit / Loss (Credit)") + "'",
 			"account": None,
-			"warn_if_negative": True
+			"warn_if_negative": True,
+			"currency": frappe.db.get_value("Company", company, "default_currency")
 		}
 
 		has_value = False
diff --git a/erpnext/accounts/report/cash_flow/cash_flow.py b/erpnext/accounts/report/cash_flow/cash_flow.py
index f6bf370..1fda16a 100644
--- a/erpnext/accounts/report/cash_flow/cash_flow.py
+++ b/erpnext/accounts/report/cash_flow/cash_flow.py
@@ -50,10 +50,12 @@
 	# compute net profit / loss
 	income = get_data(filters.company, "Income", "Credit", period_list, ignore_closing_entries=True)
 	expense = get_data(filters.company, "Expense", "Debit", period_list, ignore_closing_entries=True)
-	net_profit_loss = get_net_profit_loss(income, expense, period_list)
+	net_profit_loss = get_net_profit_loss(income, expense, period_list, filters.company)
 
 	data = []
 
+	company_currency = frappe.db.get_value("Company", filters.company, "default_currency")
+	
 	for cash_flow_account in cash_flow_accounts:
 
 		section_data = []
@@ -79,14 +81,16 @@
 			account_data.update({
 				"account_name": account['label'], 
 				"indent": 1,
-				"parent_account": cash_flow_account['section_header']
+				"parent_account": cash_flow_account['section_header'],
+				"currency": company_currency
 			})
 			data.append(account_data)
 			section_data.append(account_data)
 
-		add_total_row_account(data, section_data, cash_flow_account['section_footer'], period_list)
+		add_total_row_account(data, section_data, cash_flow_account['section_footer'], 
+			period_list, company_currency)
 
-	add_total_row_account(data, data, _("Net Change in Cash"), period_list)
+	add_total_row_account(data, data, _("Net Change in Cash"), period_list, company_currency)
 	columns = get_columns(period_list)
 
 	return columns, data
@@ -118,10 +122,11 @@
 	return data
 
 
-def add_total_row_account(out, data, label, period_list):
+def add_total_row_account(out, data, label, period_list, currency):
 	total_row = {
 		"account_name": "'" + _("{0}").format(label) + "'",
-		"account": None
+		"account": None,
+		"currency": currency
 	}
 
 	for row in data:
diff --git a/erpnext/accounts/report/financial_statements.html b/erpnext/accounts/report/financial_statements.html
index c086944..84cad16 100644
--- a/erpnext/accounts/report/financial_statements.html
+++ b/erpnext/accounts/report/financial_statements.html
@@ -45,7 +45,7 @@
 					<td class="text-right">
 						{% var fieldname = report.columns[i].field; %}
 						{% if (!is_null(row[fieldname])) { %}
-							{%= format_currency(row[fieldname]) %}
+							{%= format_currency(row[fieldname], row.currency) %}
 						{% } %}
 					</td>
 				{% } %}
diff --git a/erpnext/accounts/report/financial_statements.py b/erpnext/accounts/report/financial_statements.py
index 5e3184d..f15b734 100644
--- a/erpnext/accounts/report/financial_statements.py
+++ b/erpnext/accounts/report/financial_statements.py
@@ -80,6 +80,8 @@
 		return None
 
 	accounts, accounts_by_name = filter_accounts(accounts)
+	
+	company_currency = frappe.db.get_value("Company", company, "default_currency")
 
 	gl_entries_by_account = {}
 	for root in frappe.db.sql("""select lft, rgt from tabAccount
@@ -90,10 +92,10 @@
 
 	calculate_values(accounts_by_name, gl_entries_by_account, period_list)
 	accumulate_values_into_parents(accounts, accounts_by_name, period_list)
-	out = prepare_data(accounts, balance_must_be, period_list)
+	out = prepare_data(accounts, balance_must_be, period_list, company_currency)
 
 	if out:
-		add_total_row(out, balance_must_be, period_list)
+		add_total_row(out, balance_must_be, period_list, company_currency)
 
 	return out
 
@@ -114,7 +116,7 @@
 				accounts_by_name[d.parent_account][period.key] = accounts_by_name[d.parent_account].get(period.key, 0.0) + \
 					d.get(period.key, 0.0)
 
-def prepare_data(accounts, balance_must_be, period_list):
+def prepare_data(accounts, balance_must_be, period_list, company_currency):
 	out = []
 	year_start_date = period_list[0]["year_start_date"].strftime("%Y-%m-%d")
 	year_end_date = period_list[-1]["year_end_date"].strftime("%Y-%m-%d")
@@ -128,7 +130,8 @@
 			"parent_account": d.parent_account,
 			"indent": flt(d.indent),
 			"from_date": year_start_date,
-			"to_date": year_end_date
+			"to_date": year_end_date,
+			"currency": company_currency
 		}
 		for period in period_list:
 			if d.get(period.key):
@@ -146,10 +149,11 @@
 
 	return out
 
-def add_total_row(out, balance_must_be, period_list):
+def add_total_row(out, balance_must_be, period_list, company_currency):
 	total_row = {
 		"account_name": "'" + _("Total ({0})").format(balance_must_be) + "'",
-		"account": None
+		"account": None,
+		"currency": company_currency
 	}
 
 	for row in out:
@@ -241,7 +245,7 @@
 
 	return gl_entries_by_account
 
-def get_columns(period_list):
+def get_columns(period_list, company=None):
 	columns = [{
 		"fieldname": "account",
 		"label": _("Account"),
@@ -249,11 +253,21 @@
 		"options": "Account",
 		"width": 300
 	}]
+	if company:
+		columns.append({
+			"fieldname": "currency",
+			"label": _("Currency"),
+			"fieldtype": "Link",
+			"options": "Currency",
+			"hidden": 1
+		})
+	
 	for period in period_list:
 		columns.append({
 			"fieldname": period.key,
 			"label": period.label,
 			"fieldtype": "Currency",
+			"options": "currency",
 			"width": 150
 		})
 
diff --git a/erpnext/accounts/report/profit_and_loss_statement/profit_and_loss_statement.py b/erpnext/accounts/report/profit_and_loss_statement/profit_and_loss_statement.py
index 0431eb6..d26a3fc 100644
--- a/erpnext/accounts/report/profit_and_loss_statement/profit_and_loss_statement.py
+++ b/erpnext/accounts/report/profit_and_loss_statement/profit_and_loss_statement.py
@@ -9,10 +9,10 @@
 
 def execute(filters=None):
 	period_list = get_period_list(filters.fiscal_year, filters.periodicity)
-
+	
 	income = get_data(filters.company, "Income", "Credit", period_list, ignore_closing_entries=True)
 	expense = get_data(filters.company, "Expense", "Debit", period_list, ignore_closing_entries=True)
-	net_profit_loss = get_net_profit_loss(income, expense, period_list)
+	net_profit_loss = get_net_profit_loss(income, expense, period_list, filters.company)
 
 	data = []
 	data.extend(income or [])
@@ -20,16 +20,17 @@
 	if net_profit_loss:
 		data.append(net_profit_loss)
 
-	columns = get_columns(period_list)
+	columns = get_columns(period_list, filters.company)
 
 	return columns, data
 
-def get_net_profit_loss(income, expense, period_list):
+def get_net_profit_loss(income, expense, period_list, company):
 	if income and expense:
 		net_profit_loss = {
 			"account_name": "'" + _("Net Profit / Loss") + "'",
 			"account": None,
-			"warn_if_negative": True
+			"warn_if_negative": True,
+			"currency": frappe.db.get_value("Company", company, "default_currency")
 		}
 
 		for period in period_list:
