diff --git a/erpnext/accounts/doctype/journal_entry/journal_entry.py b/erpnext/accounts/doctype/journal_entry/journal_entry.py
index 79f1ab0..ddf6460 100644
--- a/erpnext/accounts/doctype/journal_entry/journal_entry.py
+++ b/erpnext/accounts/doctype/journal_entry/journal_entry.py
@@ -1031,6 +1031,10 @@
 
 	def build_gl_map(self):
 		gl_map = []
+		conversion_rate_map = self.get_conversion_rate_map()
+		transaction_currency_map = self.get_transaction_currency_map()
+		company_currency = erpnext.get_company_currency(self.company)
+
 		self.get_against_accounts()
 		for d in self.get("accounts"):
 			if d.debit or d.credit or (self.voucher_type == "Exchange Gain Or Loss"):
@@ -1060,6 +1064,12 @@
 						"cost_center": d.cost_center,
 						"project": d.project,
 						"finance_book": self.finance_book,
+						"conversion_rate": conversion_rate_map.get(d.against_account_link, 1)
+						if d.account_currency == company_currency
+						else 1,
+						"currency": transaction_currency_map.get(d.against_account_link, d.account_currency)
+						if d.account_currency == company_currency
+						else d.account_currency,
 					},
 					item=d,
 				)
@@ -1109,6 +1119,20 @@
 
 		return gl_map
 
+	def get_transaction_currency_map(self):
+		transaction_currency_map = {}
+		for account in self.get("accounts"):
+			transaction_currency_map.setdefault(account.party or account.account, account.account_currency)
+
+		return transaction_currency_map
+
+	def get_conversion_rate_map(self):
+		conversion_rate_map = {}
+		for account in self.get("accounts"):
+			conversion_rate_map.setdefault(account.party or account.account, account.exchange_rate)
+
+		return conversion_rate_map
+
 	def make_gl_entries(self, cancel=0, adv_adj=0):
 		from erpnext.accounts.general_ledger import make_gl_entries
 
diff --git a/erpnext/controllers/accounts_controller.py b/erpnext/controllers/accounts_controller.py
index 729bb67..13df9d5 100644
--- a/erpnext/controllers/accounts_controller.py
+++ b/erpnext/controllers/accounts_controller.py
@@ -922,7 +922,7 @@
 		# Update details in transaction currency
 		gl_dict.update(
 			{
-				"transaction_currency": self.get("currency") or self.company_currency,
+				"transaction_currency": args.get("currency") or self.get("currency") or self.company_currency,
 				"transaction_exchange_rate": self.get("conversion_rate", 1),
 				"debit_in_transaction_currency": self.get_value_in_transaction_currency(
 					account_currency, args, "debit"
@@ -955,10 +955,10 @@
 		return self.doctype
 
 	def get_value_in_transaction_currency(self, account_currency, args, field):
-		if account_currency == self.get("currency"):
+		if account_currency == args.get("currency") or self.get("currency"):
 			return args.get(field + "_in_account_currency")
 		else:
-			return flt(args.get(field, 0) / self.get("conversion_rate", 1))
+			return flt(args.get(field, 0) / (args.get("conversion_rate") or self.get("conversion_rate", 1)))
 
 	def validate_qty_is_not_zero(self):
 		if self.doctype == "Purchase Receipt":
