diff --git a/erpnext/accounts/doctype/journal_entry/journal_entry.py b/erpnext/accounts/doctype/journal_entry/journal_entry.py
index e910f54..f11a16c 100644
--- a/erpnext/accounts/doctype/journal_entry/journal_entry.py
+++ b/erpnext/accounts/doctype/journal_entry/journal_entry.py
@@ -551,7 +551,7 @@
 		}
 
 @frappe.whitelist()
-def get_payment_entry_against_order(dt, dn, base_rounded_total=None, rounded_total=None, journal_entry=False, bank_account=None):
+def get_payment_entry_against_order(dt, dn, amount=None, debit_in_account_currency=None, journal_entry=False, bank_account=None):
 	ref_doc = frappe.get_doc(dt, dn)
 
 	if flt(ref_doc.per_billed, 2) > 0:
@@ -569,7 +569,7 @@
 	party_account = get_party_account(party_type, ref_doc.get(party_type.lower()), ref_doc.company)
 	party_account_currency = get_account_currency(party_account)
 
-	if not base_rounded_total or not rounded_total:
+	if not amount:
 		if party_account_currency == ref_doc.company_currency:
 			amount = flt(ref_doc.base_grand_total) - flt(ref_doc.advance_paid)
 		else:
@@ -581,8 +581,8 @@
 		"party_account_currency": party_account_currency,
 		"amount_field_party": amount_field_party,
 		"amount_field_bank": amount_field_bank,
-		"amount": base_rounded_total or amount,
-		"rounded_total": rounded_total,
+		"amount": amount,
+		"debit_in_account_currency": debit_in_account_currency,
 		"remarks": 'Advance Payment received against {0} {1}'.format(dt, dn),
 		"is_advance": "Yes",
 		"bank_account": bank_account,
@@ -590,7 +590,7 @@
 	})
 
 @frappe.whitelist()
-def get_payment_entry_against_invoice(dt, dn, base_rounded_total=None, rounded_total=None, journal_entry=False, bank_account=None):
+def get_payment_entry_against_invoice(dt, dn, amount=None,  debit_in_account_currency=None, journal_entry=False, bank_account=None):
 	ref_doc = frappe.get_doc(dt, dn)
 	if dt == "Sales Invoice":
 		party_type = "Customer"
@@ -614,8 +614,8 @@
 		"party_account_currency": ref_doc.party_account_currency,
 		"amount_field_party": amount_field_party,
 		"amount_field_bank": amount_field_bank,
-		"amount": base_rounded_total if base_rounded_total else abs(ref_doc.outstanding_amount),
-		"rounded_total": rounded_total,
+		"amount": amount if amount else abs(ref_doc.outstanding_amount),
+		"debit_in_account_currency": debit_in_account_currency,
 		"remarks": 'Payment received against {0} {1}. {2}'.format(dt, dn, ref_doc.remarks),
 		"is_advance": "No",
 		"bank_account": bank_account,
@@ -626,6 +626,8 @@
 	cost_center = frappe.db.get_value("Company", ref_doc.company, "cost_center")
 	exchange_rate = 1
 	if args.get("party_account"):
+		print "here..."
+		print args.get("party_account"), args.get("party_account_currency")
 		exchange_rate = get_exchange_rate(args.get("party_account"), args.get("party_account_currency"),
 			ref_doc.company, ref_doc.doctype, ref_doc.name)
 
@@ -664,7 +666,8 @@
 
 	bank_row.cost_center = cost_center
 
-	amount = args.get("rounded_total") or args.get("amount")
+	amount = args.get("debit_in_account_currency") or args.get("amount")
+	
 	if bank_row.account_currency == args.get("party_account_currency"):
 		bank_row.set(args.get("amount_field_bank"), amount)
 	else:
diff --git a/erpnext/accounts/doctype/payment_request/payment_request.json b/erpnext/accounts/doctype/payment_request/payment_request.json
index 55c6524..39330a5 100644
--- a/erpnext/accounts/doctype/payment_request/payment_request.json
+++ b/erpnext/accounts/doctype/payment_request/payment_request.json
@@ -62,7 +62,7 @@
    "bold": 0, 
    "collapsible": 0, 
    "fieldname": "rounded_total", 
-   "fieldtype": "Data", 
+   "fieldtype": "Float", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
    "in_filter": 0, 
@@ -71,7 +71,7 @@
    "length": 0, 
    "no_copy": 0, 
    "permlevel": 0, 
-   "precision": "", 
+   "precision": "2", 
    "print_hide": 0, 
    "print_hide_if_no_value": 0, 
    "read_only": 0, 
@@ -603,8 +603,8 @@
  "issingle": 0, 
  "istable": 0, 
  "max_attachments": 0, 
- "modified": "2016-02-09 21:15:55.153924", 
- "modified_by": "Administrator", 
+ "modified": "2016-02-16 12:29:45.290729", 
+ "modified_by": "saurabh@erpnext.com", 
  "module": "Accounts", 
  "name": "Payment Request", 
  "name_case": "", 
diff --git a/erpnext/accounts/doctype/payment_request/payment_request.py b/erpnext/accounts/doctype/payment_request/payment_request.py
index 2faa586..0115072 100644
--- a/erpnext/accounts/doctype/payment_request/payment_request.py
+++ b/erpnext/accounts/doctype/payment_request/payment_request.py
@@ -8,7 +8,7 @@
 from frappe.model.document import Document
 from frappe.utils import flt, nowdate, get_url, cstr
 from erpnext.accounts.party import get_party_account
-from erpnext.accounts.utils import get_balance_on
+from erpnext.accounts.utils import get_account_currency
 from erpnext.accounts.doctype.journal_entry.journal_entry import (get_payment_entry_against_invoice, 
 get_payment_entry_against_order)
 
@@ -82,16 +82,31 @@
 	def create_journal_entry(self):
 		"""create entry"""
 		frappe.flags.ignore_account_permission = True
+		
+		ref_doc = frappe.get_doc(self.reference_doctype, self.reference_name)
+		
+		party_account = get_party_account("Customer", ref_doc.get("customer"), ref_doc.company)
+		party_account_currency = get_account_currency(party_account)
+		
+		debit_in_account_currency = 0.0
+		
+		if party_account_currency == ref_doc.company_currency:
+			amount = self.base_rounded_total
+			if self.currency != ref_doc.company_currency:
+				debit_in_account_currency = self.rounded_total
+			
+		else:
+			amount = self.rounded_total
 				
 		if self.reference_doctype == "Sales Order":
-			jv = get_payment_entry_against_order(self.reference_doctype, self.reference_name,\
-			 base_rounded_total=self.base_rounded_total, rounded_total= self.rounded_total,\
-			 journal_entry=True, bank_account=self.payment_account)
+			jv = get_payment_entry_against_order(self.reference_doctype, self.reference_name,
+			 amount=amount, debit_in_account_currency=debit_in_account_currency , journal_entry=True, 
+			 bank_account=self.payment_account)
 			
 		if self.reference_doctype == "Sales Invoice":
-			jv = get_payment_entry_against_invoice(self.reference_doctype, self.reference_name,\
-			 base_rounded_total=self.base_rounded_total, rounded_total= self.rounded_total, \
-			 journal_entry=True, bank_account=self.payment_account)
+			jv = get_payment_entry_against_invoice(self.reference_doctype, self.reference_name,
+			 amount=amount, debit_in_account_currency=debit_in_account_currency, journal_entry=True,
+			 bank_account=self.payment_account)
 			
 		jv.update({
 			"voucher_type": "Journal Entry",
