diff --git a/erpnext/accounts/report/bank_reconciliation_statement/bank_reconciliation_statement.py b/erpnext/accounts/report/bank_reconciliation_statement/bank_reconciliation_statement.py
index 119de09..2c0a6af 100644
--- a/erpnext/accounts/report/bank_reconciliation_statement/bank_reconciliation_statement.py
+++ b/erpnext/accounts/report/bank_reconciliation_statement/bank_reconciliation_statement.py
@@ -15,25 +15,36 @@
 	data = get_entries(filters)
 
 	from erpnext.accounts.utils import get_balance_on
-	balance_as_per_company = get_balance_on(filters["account"], filters["report_date"])
+	balance_as_per_system = get_balance_on(filters["account"], filters["report_date"])
 
 	total_debit, total_credit = 0,0
 	for d in data:
 		total_debit += flt(d[2])
 		total_credit += flt(d[3])
 
-	bank_bal = flt(balance_as_per_company) - flt(total_debit) + flt(total_credit)
+	amounts_not_reflected_in_system = frappe.db.sql("""select sum(ifnull(jvd.debit, 0) - ifnull(jvd.credit, 0))
+		from `tabJournal Voucher Detail` jvd, `tabJournal Voucher` jv
+		where jvd.parent = jv.name and jv.docstatus=1 and jvd.account=%s
+		and jv.posting_date > %s and jv.clearance_date <= %s
+		""", (filters["account"], filters["report_date"], filters["report_date"]))
+
+	amounts_not_reflected_in_system = flt(amounts_not_reflected_in_system[0][0]) \
+		if amounts_not_reflected_in_system else 0.0
+
+	bank_bal = flt(balance_as_per_system) - flt(total_debit) + flt(total_credit) \
+		+ amounts_not_reflected_in_system
 
 	data += [
-		get_balance_row("Balance as per company books", balance_as_per_company),
+		get_balance_row("Balance as per system", balance_as_per_system),
 		["", "Amounts not reflected in bank", total_debit, total_credit, "", "", "", ""],
+		get_balance_row("Amounts not reflected in system", amounts_not_reflected_in_system),
 		get_balance_row("Balance as per bank", bank_bal)
 	]
 
 	return columns, data
 
 def get_columns():
-	return ["Posting Date:Date:100", "Journal Voucher:Link/Journal Voucher:200",
+	return ["Posting Date:Date:100", "Journal Voucher:Link/Journal Voucher:220",
 		"Debit:Currency:120", "Credit:Currency:120",
 		"Against Account:Link/Account:200", "Reference::100", "Ref Date:Date:110", "Clearance Date:Date:110"
 	]
@@ -55,4 +66,4 @@
 	if amount > 0:
 		return ["", label, amount, 0, "", "", "", ""]
 	else:
-		return ["", label, 0, amount, "", "", "", ""]
+		return ["", label, 0, abs(amount), "", "", "", ""]
