diff --git a/erpnext/accounts/doctype/journal_entry/journal_entry.js b/erpnext/accounts/doctype/journal_entry/journal_entry.js
index 479eaaf..dc24522 100644
--- a/erpnext/accounts/doctype/journal_entry/journal_entry.js
+++ b/erpnext/accounts/doctype/journal_entry/journal_entry.js
@@ -347,6 +347,7 @@
 				callback: function(r) {
 					if(r.message) {
 						$.extend(d, r.message);
+						erpnext.journal_entry.set_debit_credit_in_company_currency(frm, dt, dn);
 						refresh_field('accounts');
 					}
 				}
@@ -355,11 +356,11 @@
 	},
 
 	debit_in_account_currency: function(frm, cdt, cdn) {
-		erpnext.journal_entry.set_debit_credit_in_company_currency(frm, cdt, cdn);
+		erpnext.journal_entry.set_exchange_rate(frm, cdt, cdn);
 	},
 
 	credit_in_account_currency: function(frm, cdt, cdn) {
-		erpnext.journal_entry.set_debit_credit_in_company_currency(frm, cdt, cdn);
+		erpnext.journal_entry.set_exchange_rate(frm, cdt, cdn);
 	},
 
 	debit: function(frm, dt, dn) {
@@ -368,6 +369,17 @@
 
 	credit: function(frm, dt, dn) {
 		cur_frm.cscript.update_totals(frm.doc);
+	},
+	
+	exchange_rate: function(frm, cdt, cdn) {
+		var company_currency = frappe.get_doc(":Company", frm.doc.company).default_currency;
+		var row = locals[cdt][cdn];
+
+		if(row.account_currency == company_currency || !frm.doc.multi_currency) {
+			frappe.model.set_value(cdt, cdn, "exchange_rate", 1);
+		}
+		
+		erpnext.journal_entry.set_debit_credit_in_company_currency(frm, cdt, cdn);
 	}
 })
 
@@ -395,8 +407,6 @@
 	},
 
 	set_debit_credit_in_company_currency: function(frm, cdt, cdn) {
-		erpnext.journal_entry.set_exchange_rate(frm, cdt, cdn);
-
 		var row = locals[cdt][cdn];
 
 		frappe.model.set_value(cdt, cdn, "debit",
@@ -413,7 +423,8 @@
 		var row = locals[cdt][cdn];
 
 		if(row.account_currency == company_currency || !frm.doc.multi_currency) {
-			frappe.model.set_value(cdt, cdn, "exchange_rate", 1);
+			row.exchange_rate = 1;
+			erpnext.journal_entry.set_debit_credit_in_company_currency(frm, cdt, cdn);
 		} else if (!row.exchange_rate || row.exchange_rate == 1 || row.account_type == "Bank") {
 			frappe.call({
 				method: "erpnext.accounts.doctype.journal_entry.journal_entry.get_exchange_rate",
@@ -429,11 +440,15 @@
 				},
 				callback: function(r) {
 					if(r.message) {
-						frappe.model.set_value(cdt, cdn, "exchange_rate", r.message);
+						row.exchange_rate = r.message;
+						erpnext.journal_entry.set_debit_credit_in_company_currency(frm, cdt, cdn);
 					}
 				}
 			})
+		} else {
+			erpnext.journal_entry.set_debit_credit_in_company_currency(frm, cdt, cdn);
 		}
+		refresh_field("exchange_rate", cdn, "accounts");
 	},
 
 	quick_entry: function(frm) {
