diff --git a/erpnext/accounts/doctype/journal_entry/journal_entry.py b/erpnext/accounts/doctype/journal_entry/journal_entry.py
index ebdd729..f122deb 100644
--- a/erpnext/accounts/doctype/journal_entry/journal_entry.py
+++ b/erpnext/accounts/doctype/journal_entry/journal_entry.py
@@ -263,7 +263,7 @@
 
 		self.difference = flt(self.total_debit, self.precision("total_debit")) - \
 			flt(self.total_credit, self.precision("total_credit"))
-
+		print self.difference
 		if self.difference:
 			frappe.throw(_("Total Debit must be equal to Total Credit. The difference is {0}")
 				.format(self.difference))
diff --git a/erpnext/accounts/doctype/journal_entry_account/journal_entry_account.json b/erpnext/accounts/doctype/journal_entry_account/journal_entry_account.json
index 253c267..718d96a 100644
--- a/erpnext/accounts/doctype/journal_entry_account/journal_entry_account.json
+++ b/erpnext/accounts/doctype/journal_entry_account/journal_entry_account.json
@@ -270,14 +270,14 @@
    "ignore_user_permissions": 0, 
    "in_filter": 0, 
    "in_list_view": 1, 
-   "label": "Debit", 
+   "label": "Debit in Company Currency", 
    "no_copy": 0, 
    "oldfieldname": "debit", 
    "oldfieldtype": "Currency", 
    "options": "Company:company:default_currency", 
    "permlevel": 0, 
    "print_hide": 0, 
-   "read_only": 0, 
+   "read_only": 1, 
    "report_hide": 0, 
    "reqd": 0, 
    "search_index": 0, 
@@ -331,14 +331,14 @@
    "ignore_user_permissions": 0, 
    "in_filter": 0, 
    "in_list_view": 1, 
-   "label": "Credit", 
+   "label": "Credit in Company Currency", 
    "no_copy": 0, 
    "oldfieldname": "credit", 
    "oldfieldtype": "Currency", 
    "options": "Company:company:default_currency", 
    "permlevel": 0, 
    "print_hide": 0, 
-   "read_only": 0, 
+   "read_only": 1, 
    "report_hide": 0, 
    "reqd": 0, 
    "search_index": 0, 
@@ -476,7 +476,7 @@
  "is_submittable": 0, 
  "issingle": 0, 
  "istable": 1, 
- "modified": "2015-08-18 17:23:28.378231", 
+ "modified": "2015-08-27 12:52:20.914258", 
  "modified_by": "Administrator", 
  "module": "Accounts", 
  "name": "Journal Entry Account", 
diff --git a/erpnext/patches.txt b/erpnext/patches.txt
index 21656c6..cadd6af 100644
--- a/erpnext/patches.txt
+++ b/erpnext/patches.txt
@@ -193,3 +193,4 @@
 erpnext.patches.v5_7.item_template_attributes
 erpnext.patches.v4_2.repost_reserved_qty #2015-08-20
 erpnext.patches.v5_4.update_purchase_cost_against_project
+erpnext.patches.v6_0.multi_currency
\ No newline at end of file
diff --git a/erpnext/patches/v5_7/multi_currency.py b/erpnext/patches/v5_7/multi_currency.py
deleted file mode 100644
index 52e4d04..0000000
--- a/erpnext/patches/v5_7/multi_currency.py
+++ /dev/null
@@ -1,10 +0,0 @@
-# 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():
-	frappe.db.sql("""update `tabAccount` acc 
-		set currency = (select default_currency from tabCompany where name=acc.company)
-		where ifnull(currency, '') = ''""")
\ No newline at end of file
diff --git a/erpnext/patches/v6_0/__init__.py b/erpnext/patches/v6_0/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/patches/v6_0/__init__.py
diff --git a/erpnext/patches/v6_0/multi_currency.py b/erpnext/patches/v6_0/multi_currency.py
new file mode 100644
index 0000000..21c851b
--- /dev/null
+++ b/erpnext/patches/v6_0/multi_currency.py
@@ -0,0 +1,85 @@
+# 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():
+	# Reload doctype
+	for dt in ("Account", "GL Entry", "Journal Entry", 
+		"Journal Entry Account", "Sales Invoice", "Purchase Invoice"):
+			frappe.reload_doctype(dt)
+			
+	for company in frappe.get_all("Company", fields=["name", "default_currency", "default_receivable_account"]):
+		
+		# update currency in account and gl entry as per company currency
+		frappe.db.sql("""update `tabAccount` set currency = %s 
+			where ifnull(currency, '') = '' and company=%s""", (company.default_currency, company.name))
+		
+		# update newly introduced field's value in sales / purchase invoice
+		frappe.db.sql("""
+			update 
+				`tabSales Invoice`
+			set 
+				base_paid_amount=paid_amount,
+				base_write_off_amount=write_off_amount,
+				party_account_currency=%s
+			where company=%s
+		""", (company.default_currency, company.name))
+		
+		frappe.db.sql("""
+			update 
+				`tabPurchase Invoice`
+			set 
+				base_write_off_amount=write_off_amount,
+				party_account_currency=%s
+			where company=%s
+		""", (company.default_currency, company.name))
+		
+		# update exchange rate, debit/credit in account currency in Journal Entry
+		frappe.db.sql("""update `tabJournal Entry` set exchange_rate=1""")
+	
+		frappe.db.sql("""
+			update
+				`tabJournal Entry Account` jea, `tabJournal Entry` je
+			set 
+				debit_in_account_currency=debit,
+				credit_in_account_currency=credit,
+				currency=%s
+			where
+				jea.parent = je.name
+				and je.company=%s
+		""", (company.default_currency, company.name))
+	
+		# update debit/credit in account currency in GL Entry
+		frappe.db.sql("""
+			update
+				`tabGL Entry`
+			set 
+				debit_in_account_currency=debit,
+				credit_in_account_currency=credit,
+				currency=%s
+			where
+				company=%s
+		""", (company.default_currency, company.name))
+		
+		# Set party account if default currency of party other than company's default currency
+		for dt in ("Customer", "Supplier"):
+			parties = frappe.db.sql("""select name from `tab{0}` p
+				where ifnull(default_currency, '') != '' and default_currency != %s 
+				and not exists(select name from `tabParty Account` where parent=p.name and company=%s)"""
+				.format(dt), (company.default_currency, company.name))
+			
+			for p in parties:
+				party = frappe.get_doc(dt, p[0])
+				party_gle = frappe.db.get_value("GL Entry", {"party_type": dt, "party": p[0], 
+					"company": company.name}, ["account"], as_dict=True)
+					
+				party_account = party_gle.account or company.default_receivable_account
+				
+				party.append("party_accounts", {
+					"company": company.name,
+					"account": party_account
+				})
+				party.ignore_mandatory()
+				party.save()
\ No newline at end of file
