diff --git a/erpnext/accounts/doctype/payment_gateway_account/payment_gateway_account.py b/erpnext/accounts/doctype/payment_gateway_account/payment_gateway_account.py
index dd971ad..468f877 100644
--- a/erpnext/accounts/doctype/payment_gateway_account/payment_gateway_account.py
+++ b/erpnext/accounts/doctype/payment_gateway_account/payment_gateway_account.py
@@ -11,6 +11,8 @@
 		self.name = self.gateway + " - " + self.currency
 		
 	def validate(self):
+		self.currency = frappe.db.get_value("Account", self.payment_account, "account_currency")
+		
 		self.update_default_payment_gateway()
 		self.set_as_default_if_not_set()
 	
@@ -20,5 +22,6 @@
 				where is_default = 1 """)
 		
 	def set_as_default_if_not_set(self):
-		if not frappe.db.get_value("Payment Gateway Account", {"is_default": 1, "name": ("!=", self.name)}, "name"):
-			self.is_default = 1
+		if not frappe.db.get_value("Payment Gateway Account", 
+			{"is_default": 1, "name": ("!=", self.name)}, "name"):
+				self.is_default = 1
diff --git a/erpnext/accounts/doctype/payment_request/payment_request.py b/erpnext/accounts/doctype/payment_request/payment_request.py
index 9e29697..ba7413d 100644
--- a/erpnext/accounts/doctype/payment_request/payment_request.py
+++ b/erpnext/accounts/doctype/payment_request/payment_request.py
@@ -23,7 +23,7 @@
 	def validate_payment_request(self):
 		if frappe.db.get_value("Payment Request", {"reference_name": self.reference_name, 
 			"name": ("!=", self.name), "status": ("not in", ["Initiated", "Paid"]), "docstatus": 1}, "name"):
-			frappe.throw(_("Payment Request already exists {0}".fomart(self.reference_name)))
+			frappe.throw(_("Payment Request already exists {0}".format(self.reference_name)))
 	
 	def validate_currency(self):
 		ref_doc = frappe.get_doc(self.reference_doctype, self.reference_name)
@@ -150,37 +150,43 @@
 	ref_doc = frappe.get_doc(args.dt, args.dn)
 	gateway_account = get_gateway_details(args)
 	
-	pr = frappe.new_doc("Payment Request")
-	pr.update({
-		"payment_gateway": gateway_account.name,
-		"gateway": gateway_account.gateway,
-		"payment_account": gateway_account.payment_account,
-		"currency": ref_doc.currency,
-		"make_sales_invoice": args.cart or 0,
-		"amount": get_amount(ref_doc, args.dt),
-		"mute_email": args.mute_email or 0,
-		"email_to": args.recipient_id or "",
-		"subject": "Payment Request for %s"%args.dn,
-		"message": gateway_account.message,
-		"payment_url_message": gateway_account.payment_url_message,
-		"payment_success_url": gateway_account.payment_success_url,
-		"reference_doctype": args.dt,
-		"reference_name": args.dn
-	})
+	existing_payment_request = frappe.db.get_value("Payment Request", 
+		{"reference_doctype": args.dt, "reference_name": args.dn})
+	if existing_payment_request:
+		pr = frappe.get_doc("Payment Request", existing_payment_request)
+	else:
+		pr = frappe.new_doc("Payment Request")
+
+		pr.update({
+			"payment_gateway": gateway_account.name,
+			"gateway": gateway_account.gateway,
+			"payment_account": gateway_account.payment_account,
+			"currency": ref_doc.currency,
+			"make_sales_invoice": args.cart or 0,
+			"amount": get_amount(ref_doc, args.dt),
+			"mute_email": args.mute_email or 0,
+			"email_to": args.recipient_id or "",
+			"subject": "Payment Request for %s"%args.dn,
+			"message": gateway_account.message,
+			"payment_url_message": gateway_account.payment_url_message,
+			"payment_success_url": gateway_account.payment_success_url,
+			"reference_doctype": args.dt,
+			"reference_name": args.dn
+		})
 	
-	if args.return_doc:
-		return pr
-		
-	if args.submit_doc:
-		pr.insert(ignore_permissions=True)
-		pr.submit()
-		
-		if args.cart:
-			generate_payment_request(pr.name)
-			frappe.db.commit()
-		
-		if not args.cart:	
+		if args.return_doc:
 			return pr
+		
+		if args.submit_doc:
+			pr.insert(ignore_permissions=True)
+			pr.submit()
+	
+	if args.cart:
+		generate_payment_request(pr.name)
+		frappe.db.commit()
+	
+	if not args.cart:	
+		return pr
 			
 	return pr.as_dict()
 
