diff --git a/erpnext/accounts/report/trial_balance_for_party/__init__.py b/erpnext/accounts/report/trial_balance_for_party/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/accounts/report/trial_balance_for_party/__init__.py
diff --git a/erpnext/accounts/report/trial_balance_for_party/trial_balance_for_party.js b/erpnext/accounts/report/trial_balance_for_party/trial_balance_for_party.js
new file mode 100644
index 0000000..45d7bc0
--- /dev/null
+++ b/erpnext/accounts/report/trial_balance_for_party/trial_balance_for_party.js
@@ -0,0 +1,59 @@
+// Copyright (c) 2013, Frappe Technologies Pvt. Ltd. and contributors
+// For license information, please see license.txt
+
+frappe.query_reports["Trial Balance for Party"] = {
+	"filters": [
+		{
+			"fieldname": "company",
+			"label": __("Company"),
+			"fieldtype": "Link",
+			"options": "Company",
+			"default": frappe.defaults.get_user_default("company"),
+			"reqd": 1
+		},
+		{
+			"fieldname": "fiscal_year",
+			"label": __("Fiscal Year"),
+			"fieldtype": "Link",
+			"options": "Fiscal Year",
+			"default": frappe.defaults.get_user_default("fiscal_year"),
+			"reqd": 1,
+			"on_change": function(query_report) {
+				var fiscal_year = query_report.get_values().fiscal_year;
+				if (!fiscal_year) {
+					return;
+				}
+				frappe.model.with_doc("Fiscal Year", fiscal_year, function(r) {
+					var fy = frappe.model.get_doc("Fiscal Year", fiscal_year);
+					query_report.filters_by_name.from_date.set_input(fy.year_start_date);
+					query_report.filters_by_name.to_date.set_input(fy.year_end_date);
+					query_report.trigger_refresh();
+				});
+			}
+		},
+		{
+			"fieldname": "from_date",
+			"label": __("From Date"),
+			"fieldtype": "Date",
+			"default": frappe.defaults.get_user_default("year_start_date"),
+		},
+		{
+			"fieldname": "to_date",
+			"label": __("To Date"),
+			"fieldtype": "Date",
+			"default": frappe.defaults.get_user_default("year_end_date"),
+		},
+		{
+			"fieldname":"party_type",
+			"label": __("Party Type"),
+			"fieldtype": "Select",
+			"options": ["Customer", "Supplier"],
+			"default": "Customer"
+		},
+		{
+			"fieldname": "show_zero_values",
+			"label": __("Show zero values"),
+			"fieldtype": "Check"
+		}
+	]
+}
diff --git a/erpnext/accounts/report/trial_balance_for_party/trial_balance_for_party.json b/erpnext/accounts/report/trial_balance_for_party/trial_balance_for_party.json
new file mode 100644
index 0000000..630462d
--- /dev/null
+++ b/erpnext/accounts/report/trial_balance_for_party/trial_balance_for_party.json
@@ -0,0 +1,17 @@
+{
+ "add_total_row": 0, 
+ "apply_user_permissions": 1, 
+ "creation": "2015-09-22 10:28:45.762272", 
+ "disabled": 0, 
+ "docstatus": 0, 
+ "doctype": "Report", 
+ "is_standard": "Yes", 
+ "modified": "2015-09-22 10:28:45.762272", 
+ "modified_by": "Administrator", 
+ "module": "Accounts", 
+ "name": "Trial Balance for Party", 
+ "owner": "Administrator", 
+ "ref_doctype": "GL Entry", 
+ "report_name": "Trial Balance for Party", 
+ "report_type": "Script Report"
+}
\ No newline at end of file
diff --git a/erpnext/accounts/report/trial_balance_for_party/trial_balance_for_party.py b/erpnext/accounts/report/trial_balance_for_party/trial_balance_for_party.py
new file mode 100644
index 0000000..2a47ce8
--- /dev/null
+++ b/erpnext/accounts/report/trial_balance_for_party/trial_balance_for_party.py
@@ -0,0 +1,195 @@
+# Copyright (c) 2013, Frappe Technologies Pvt. Ltd. and contributors
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+import frappe
+from frappe import _
+from frappe.utils import flt, cint
+from erpnext.accounts.report.trial_balance.trial_balance import validate_filters
+
+
+def execute(filters=None):
+	validate_filters(filters)
+	
+	show_party_name = is_party_name_visible(filters)
+	
+	columns = get_columns(filters, show_party_name)
+	data = get_data(filters, show_party_name)
+
+	return columns, data
+	
+def get_data(filters, show_party_name):
+	party_name_field = "customer_name" if filters.get("party_type")=="Customer" else "supplier_name"
+	parties = frappe.get_all(filters.get("party_type"), fields = ["name", party_name_field], order_by="name")
+	
+	opening_balances = get_opening_balances(filters)
+	balances_within_period = get_balances_within_period(filters)
+	
+	data = []
+	total_debit, total_credit = 0, 0
+	for party in parties:
+		row = { "party": party.name }
+		if show_party_name:
+			row["party_name"] = party.get(party_name_field)
+		
+		# opening
+		opening_debit, opening_credit = opening_balances.get(party.name, [0, 0])
+		row.update({
+			"opening_debit": opening_debit,
+			"opening_credit": opening_credit
+		})
+		
+		# within period
+		debit, credit = balances_within_period.get(party.name, [0, 0])
+		row.update({
+			"debit": debit,
+			"credit": credit
+		})
+		
+		# totals
+		total_debit += debit
+		total_credit += credit
+		
+		# closing
+		closing_debit, closing_credit = toggle_debit_credit(opening_debit + debit, opening_credit + credit)
+		row.update({
+			"closing_debit": closing_debit,
+			"closing_credit": closing_credit
+		})
+		
+		has_value = False
+		if (opening_debit or opening_credit or debit or credit or closing_debit or closing_credit):
+			has_value  =True
+		
+		if cint(filters.show_zero_values) or has_value:
+			data.append(row)
+		
+	# Add total row
+	if total_debit or total_credit:
+		data.append({
+			"party": "'" + _("Totals") + "'",
+			"debit": total_debit,
+			"credit": total_credit
+		})
+	
+	return data
+	
+def get_opening_balances(filters):
+	gle = frappe.db.sql("""
+		select party, sum(ifnull(debit, 0)) as opening_debit, sum(ifnull(credit, 0)) as opening_credit 
+		from `tabGL Entry`
+		where company=%(company)s 
+			and ifnull(party_type, '') = %(party_type)s and ifnull(party, '') != ''
+			and (posting_date < %(from_date)s or ifnull(is_opening, 'No') = 'Yes')
+		group by party""", {
+			"company": filters.company,
+			"from_date": filters.from_date,
+			"party_type": filters.party_type
+		}, as_dict=True)
+		
+	opening = frappe._dict()
+	for d in gle:
+		opening_debit, opening_credit = toggle_debit_credit(d.opening_debit, d.opening_credit)
+		opening.setdefault(d.party, [opening_debit, opening_credit])
+		
+	return opening
+	
+def get_balances_within_period(filters):
+	gle = frappe.db.sql("""
+		select party, sum(ifnull(debit, 0)) as debit, sum(ifnull(credit, 0)) as credit 
+		from `tabGL Entry`
+		where company=%(company)s 
+			and ifnull(party_type, '') = %(party_type)s and ifnull(party, '') != ''
+			and posting_date >= %(from_date)s and posting_date <= %(to_date)s 
+			and ifnull(is_opening, 'No') = 'No'
+		group by party""", {
+			"company": filters.company,
+			"from_date": filters.from_date,
+			"to_date": filters.to_date,
+			"party_type": filters.party_type
+		}, as_dict=True)
+		
+	balances_within_period = frappe._dict()
+	for d in gle:
+		balances_within_period.setdefault(d.party, [d.debit, d.credit])
+		
+	return balances_within_period
+	
+def toggle_debit_credit(debit, credit):
+	if flt(debit) > flt(credit):
+		debit = flt(debit) - flt(credit)
+		credit = 0.0
+	else:
+		credit = flt(credit) - flt(debit)
+		debit = 0.0
+		
+	return debit, credit
+	
+def get_columns(filters, show_party_name):
+	columns = [
+		{
+			"fieldname": "party",
+			"label": _(filters.party_type),
+			"fieldtype": "Link",
+			"options": filters.party_type,
+			"width": 200
+		},
+		{
+			"fieldname": "opening_debit",
+			"label": _("Opening (Dr)"),
+			"fieldtype": "Currency",
+			"width": 120
+		},
+		{
+			"fieldname": "opening_credit",
+			"label": _("Opening (Cr)"),
+			"fieldtype": "Currency",
+			"width": 120
+		},
+		{
+			"fieldname": "debit",
+			"label": _("Debit"),
+			"fieldtype": "Currency",
+			"width": 120
+		},
+		{
+			"fieldname": "credit",
+			"label": _("Credit"),
+			"fieldtype": "Currency",
+			"width": 120
+		},
+		{
+			"fieldname": "closing_debit",
+			"label": _("Closing (Dr)"),
+			"fieldtype": "Currency",
+			"width": 120
+		},
+		{
+			"fieldname": "closing_credit",
+			"label": _("Closing (Cr)"),
+			"fieldtype": "Currency",
+			"width": 120
+		}
+	]
+	
+	if show_party_name:
+		columns.insert(1, {
+			"fieldname": "party_name",
+			"label": _(filters.party_type) + " Name",
+			"fieldtype": "Data",
+			"width": 200
+		})
+		
+	return columns
+		
+def is_party_name_visible(filters):
+	show_party_name = False
+	if filters.get("party_type") == "Customer":
+		party_naming_by = frappe.db.get_single_value("Selling Settings", "cust_master_name")
+	else:
+		party_naming_by = frappe.db.get_single_value("Buying Settings", "supp_master_name")
+		
+	if party_naming_by == "Naming Series":
+		show_party_name = True
+		
+	return show_party_name
\ No newline at end of file
diff --git a/erpnext/change_log/current/trial_balance_for_party.md b/erpnext/change_log/current/trial_balance_for_party.md
new file mode 100644
index 0000000..3d93e25
--- /dev/null
+++ b/erpnext/change_log/current/trial_balance_for_party.md
@@ -0,0 +1 @@
+- Trial Balance for Customer and Supplier
\ No newline at end of file
diff --git a/erpnext/config/accounts.py b/erpnext/config/accounts.py
index 71a2d70..7fca256 100644
--- a/erpnext/config/accounts.py
+++ b/erpnext/config/accounts.py
@@ -189,6 +189,12 @@
 				},
 				{
 					"type": "report",
+					"name": "Trial Balance for Party",
+					"doctype": "GL Entry",
+					"is_query_report": True,
+				},
+				{
+					"type": "report",
 					"name": "Gross Profit",
 					"doctype": "Sales Invoice",
 					"is_query_report": True
