diff --git a/accounts/doctype/purchase_invoice/purchase_invoice.py b/accounts/doctype/purchase_invoice/purchase_invoice.py
index aa82492..05723ce 100644
--- a/accounts/doctype/purchase_invoice/purchase_invoice.py
+++ b/accounts/doctype/purchase_invoice/purchase_invoice.py
@@ -89,11 +89,11 @@
 		return ret
 		
 	def set_supplier_defaults(self):
-		self.doc.fields.update(self.get_cust())
+		self.doc.fields.update(self.get_supplier())
 		self.doc.fields.update(self.get_credit_to())
 		super(DocType, self).set_supplier_defaults()
 		
-	def get_cust(self):
+	def get_supplier(self):
 		ret = {}
 		if self.doc.credit_to:
 			acc = webnotes.conn.get_value('Account',self.doc.credit_to,['master_name', 'credit_days'])
diff --git a/controllers/buying_controller.py b/controllers/buying_controller.py
index a44ceba..47c28f5 100644
--- a/controllers/buying_controller.py
+++ b/controllers/buying_controller.py
@@ -47,17 +47,12 @@
 		
 		# set contact and address details for supplier, if they are not mentioned
 		if self.doc.supplier and not (self.doc.contact_person and self.doc.supplier_address):
-			for fieldname, val in self.get_default_address_and_contact("supplier").items():
+			for fieldname, val in self.get_supplier_defaults().items():
 				if not self.doc.fields.get(fieldname) and self.meta.get_field(fieldname):
 					self.doc.fields[fieldname] = val
 
 		self.set_missing_item_details(get_item_details)
 
-	def set_supplier_defaults(self):
-		for fieldname, val in self.get_default_address_and_contact("supplier").items():
-			if self.meta.get_field(fieldname):
-				self.doc.fields[fieldname] = val
-						
 	def get_purchase_tax_details(self):
 		self.doclist = self.doc.clear_table(self.doclist, "purchase_tax_details")
 		self.set_taxes("purchase_tax_details", "purchase_other_charges")
diff --git a/manufacturing/doctype/bom/bom.py b/manufacturing/doctype/bom/bom.py
index 94f3d20..7dba6ea 100644
--- a/manufacturing/doctype/bom/bom.py
+++ b/manufacturing/doctype/bom/bom.py
@@ -97,9 +97,10 @@
 		""" Get raw material details like uom, desc and rate"""
 		if not args:
 			args = webnotes.form_dict.get('args')
-			
-		import json
-		args = json.loads(args)
+		
+		if isinstance(args, basestring):
+			import json
+			args = json.loads(args)
 				
 		item = self.get_item_det(args['item_code'])
 		self.validate_rm_item(item)
diff --git a/utilities/transaction_base.py b/utilities/transaction_base.py
index 2900bf6..14c23b8 100644
--- a/utilities/transaction_base.py
+++ b/utilities/transaction_base.py
@@ -94,8 +94,10 @@
 			webnotes.conn.get_value("Customer Group", self.doc.customer_group, "default_price_list") or \
 			self.doc.price_list
 			
-		self.doc.fields.update(customer_defaults)
-		
+		for fieldname, val in customer_defaults.items():
+			if not self.doc.fields.get(fieldname) and self.meta.get_field(fieldname):
+				self.doc.fields[fieldname] = val
+			
 		if self.meta.get_field("sales_team"):
 			self.set_sales_team_for_customer()
 			
@@ -121,7 +123,21 @@
 			
 			# add child
 			self.doclist.append(sales_person)
-	
+			
+	def get_supplier_defaults(self):
+		out = self.get_default_address_and_contact("supplier")
+
+		supplier = webnotes.doc("Supplier", self.doc.supplier)
+		out["supplier_name"] = supplier.supplier_name
+		out["currency"] = supplier.default_currency
+		
+		return out
+		
+	def set_supplier_defaults(self):
+		for fieldname, val in self.get_supplier_defaults().items():
+			if not self.doc.fields.get(fieldname) and self.meta.get_field(fieldname):
+				self.doc.fields[fieldname] = val
+				
 	def get_lead_defaults(self):
 		out = self.get_default_address_and_contact("lead")
 		
