diff --git a/erpnext/manufacturing/doctype/bom/bom.py b/erpnext/manufacturing/doctype/bom/bom.py
index 13bf087..56bff32 100644
--- a/erpnext/manufacturing/doctype/bom/bom.py
+++ b/erpnext/manufacturing/doctype/bom/bom.py
@@ -3,7 +3,7 @@
 
 from __future__ import unicode_literals
 import frappe
-from frappe.utils import cint, cstr, flt, now, nowdate
+from frappe.utils import cint, cstr, flt
 
 from frappe import _
 from frappe.model.document import Document
@@ -132,26 +132,15 @@
 		return bom and bom[0]['unit_cost'] or 0
 
 	def get_valuation_rate(self, args):
-		""" Get average valuation rate of relevant warehouses
-			as per valuation method (MAR/FIFO)
-			as on costing date
-		"""
-		from erpnext.stock.utils import get_incoming_rate
-		posting_date, posting_time = nowdate(), now().split()[1]
-		warehouse = frappe.db.sql("select warehouse from `tabBin` where item_code = %s", args['item_code'])
-		rate = []
-		for wh in warehouse:
-			r = get_incoming_rate({
-				"item_code": args.get("item_code"),
-				"warehouse": wh[0],
-				"posting_date": posting_date,
-				"posting_time": posting_time,
-				"qty": args.get("qty") or 0
-			})
-			if r:
-				rate.append(r)
+		""" Get weighted average of valuation rate from all warehouses """
 
-		return rate and flt(sum(rate))/len(rate) or 0
+		total_qty, total_value = 0, 0
+		for d in frappe.db.sql("""select actual_qty, stock_value from `tabBin`
+			where item_code=%s and actual_qty > 0""", args['item_code'], as_dict=1):
+				total_qty += flt(d.actual_qty)
+				total_value += flt(d.stock_value)
+
+		return total_value / total_qty
 
 	def manage_default_bom(self):
 		""" Uncheck others if current one is selected as default,
