diff --git a/erpnext/accounts/general_ledger.py b/erpnext/accounts/general_ledger.py
index 75dcbbf..d2ea4cd 100644
--- a/erpnext/accounts/general_ledger.py
+++ b/erpnext/accounts/general_ledger.py
@@ -56,12 +56,13 @@
 
 def check_if_in_list(gle, gl_map):
 	for e in gl_map:
-		if e.account == gle.account and \
-				cstr(e.get('against_voucher'))==cstr(gle.get('against_voucher')) \
-				and cstr(e.get('against_voucher_type')) == \
-					cstr(gle.get('against_voucher_type')) \
-				and cstr(e.get('cost_center')) == cstr(gle.get('cost_center')):
-			return e
+		if e.account == gle.account \
+			and cstr(e.get('party_type'))==cstr(gle.get('party_type')) \
+			and cstr(e.get('party'))==cstr(gle.get('party')) \
+			and cstr(e.get('against_voucher'))==cstr(gle.get('against_voucher')) \
+			and cstr(e.get('against_voucher_type')) == cstr(gle.get('against_voucher_type')) \
+			and cstr(e.get('cost_center')) == cstr(gle.get('cost_center')):
+				return e
 
 def save_entries(gl_map, adv_adj, update_outstanding):
 	validate_account_for_auto_accounting_for_stock(gl_map)
diff --git a/erpnext/patches.txt b/erpnext/patches.txt
index f9590a9..d40db97 100644
--- a/erpnext/patches.txt
+++ b/erpnext/patches.txt
@@ -161,3 +161,4 @@
 execute:frappe.db.set_value("Backup Manager", None, "send_backups_to_dropbox", 1 if frappe.db.get_value("Backup Manager", None, "upload_backups_to_dropbox") in ("Daily", "Weekly") else 0)
 execute:frappe.db.sql_list("delete from `tabDocPerm` where parent='Issue' and modified_by='Administrator' and role='Guest'")
 erpnext.patches.v5_0.update_item_and_description_again
+erpnext.patches.v5_0.repost_gle_for_jv_with_multiple_party
\ No newline at end of file
diff --git a/erpnext/patches/v5_0/repost_gle_for_jv_with_multiple_party.py b/erpnext/patches/v5_0/repost_gle_for_jv_with_multiple_party.py
new file mode 100644
index 0000000..da58ae2
--- /dev/null
+++ b/erpnext/patches/v5_0/repost_gle_for_jv_with_multiple_party.py
@@ -0,0 +1,26 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
+# License: GNU General Public License v3. See license.txt
+
+from __future__ import unicode_literals
+import frappe
+
+def execute():
+	je_list = frappe.db.sql_list("""
+		select par.name from `tabJournal Entry` par 
+		where par.docstatus=1 and par.creation > '2015-03-01'
+			and (select count(distinct child.party) from `tabJournal Entry Account` child
+				where par.name=child.parent and ifnull(child.party, '') != '') > 1	
+	""")
+	
+	for d in je_list:		
+		# delete existing gle
+		frappe.db.sql("delete from `tabGL Entry` where voucher_type='Journal Entry' and voucher_no=%s", d)
+		
+		# repost gl entries
+		je = frappe.get_doc("Journal Entry", d)
+		je.make_gl_entries()
+		
+	if je_list:
+		print je_list
+		
+		
\ No newline at end of file
diff --git a/erpnext/setup/doctype/company/company.js b/erpnext/setup/doctype/company/company.js
index 2c9d4f5..e8e2e73 100644
--- a/erpnext/setup/doctype/company/company.js
+++ b/erpnext/setup/doctype/company/company.js
@@ -124,9 +124,9 @@
 		["default_cash_account", {"account_type": "Cash"}], 
 		["default_receivable_account", {"account_type": "Receivable"}], 
 		["default_payable_account", {"account_type": "Payable"}], 
-		["default_expense_account", {"report_type": "Profit and Loss"}], 
-		["default_income_account", {"report_type": "Profit and Loss"}], 
-		["round_off_account", {"account_type": "Profit and Loss"}],
+		["default_expense_account", {"root_type": "Expense"}], 
+		["default_income_account", {"root_type": "Income"}], 
+		["round_off_account", {"root_type": "Expense"}],
 		["cost_center", {}],
 		["round_off_cost_center", {}]
 	], function(i, v) {
@@ -135,8 +135,8 @@
 	
 	if (sys_defaults.auto_accounting_for_stock) {
 		$.each([
-			["stock_adjustment_account", {"report_type": "Profit and Loss"}], 
-			["expenses_included_in_valuation", {"report_type": "Profit and Loss"}],
+			["stock_adjustment_account", {"root_type": "Expense"}], 
+			["expenses_included_in_valuation", {"root_type": "Expense"}],
 			["stock_received_but_not_billed", {"report_type": "Balance Sheet"}]
 		], function(i, v) {
 			erpnext.company.set_custom_query(frm, v);
@@ -146,13 +146,12 @@
 
 erpnext.company.set_custom_query = function(frm, v) {
 	var filters = {
-		"company": frm.doc.company,
+		"company": frm.doc.name,
 		"is_group": 0
 	};
-	
 	for (var key in v[1]) 
 		filters[key] = v[1][key];
-	
+
 	frm.set_query(v[0], function() {
 		return {
 			filters: filters
