diff --git a/manufacturing/doctype/bom/bom.js b/manufacturing/doctype/bom/bom.js
index 9d0175f..7cd6e06 100644
--- a/manufacturing/doctype/bom/bom.js
+++ b/manufacturing/doctype/bom/bom.js
@@ -19,7 +19,7 @@
 	cur_frm.toggle_enable("item", doc.__islocal);
 	if (!doc.__islocal && doc.docstatus==0) {
 		cur_frm.set_intro("Submit the BOM to use it in production");
-	}
+	} else cur_frm.set_intro("");
 }
 
 cur_frm.cscript.item = function(doc, dt, dn) {
@@ -164,8 +164,12 @@
 		ORDER BY `tabItem`.`name` LIMIT 50';
 }
 
-cur_frm.fields_dict['bom_materials'].grid.get_field('bom_no').get_query = function(doc) {
-	var d = locals[this.doctype][this.docname];
+cur_frm.fields_dict['bom_materials'].grid.get_field('bom_no').get_query = function(doc, cdt, cdn) {
+	var d = locals[cdt][cdn];
+	msgprint('SELECT DISTINCT `tabBOM`.`name`, `tabBOM`.`remarks` FROM `tabBOM` \
+		WHERE `tabBOM`.`item` = "' + d.item_code + '" AND `tabBOM`.`is_active` = "Yes" AND \
+		 	`tabBOM`.docstatus = 1 AND `tabBOM`.`name` like "%s" \
+		ORDER BY `tabBOM`.`name` LIMIT 50');
 	return 'SELECT DISTINCT `tabBOM`.`name`, `tabBOM`.`remarks` FROM `tabBOM` \
 		WHERE `tabBOM`.`item` = "' + d.item_code + '" AND `tabBOM`.`is_active` = "Yes" AND \
 		 	`tabBOM`.docstatus = 1 AND `tabBOM`.`name` like "%s" \
diff --git a/manufacturing/doctype/bom/bom.py b/manufacturing/doctype/bom/bom.py
index ea596db..7345569 100644
--- a/manufacturing/doctype/bom/bom.py
+++ b/manufacturing/doctype/bom/bom.py
@@ -42,7 +42,7 @@
 
 	def get_item_det(self, item_code):
 		item = sql("""select name, is_asset_item, is_purchase_item, docstatus,
-		 	is_sub_contracted_item, description, stock_uom, default_bom, 
+		 	is_sub_contracted_item, stock_uom, default_bom, 
 			last_purchase_rate, standard_rate, is_manufactured_item 
 			from `tabItem` where item_code = %s""", item_code, as_dict = 1)
 
@@ -50,27 +50,13 @@
 
 
 	def get_item_detail(self, item_code):
-		""" Get stock uom and description for finished good item"""
-
-		item = self.get_item_det(item_code)
-		ret={
-			'description'	 : item and item[0]['description'] or '',
-			'uom'				: item and item[0]['stock_uom'] or ''
-		}
-		return ret
-
+		return { 'uom' : webnotes.conn.get_value("Item", item_code, "stock_uom")}
 
 	def get_workstation_details(self,workstation):
-		""" Fetch hour rate from workstation master"""
-
-		ws = sql("select hour_rate from `tabWorkstation` where name = %s", 
-			workstation , as_dict = 1)
-		return {'hour_rate'	: ws and flt(ws[0]['hour_rate']) or ''}
+		return {'hour_rate': webnotes.conn.get_value("Workstation", workstation, "hour_rate")}
 
 
 	def validate_rm_item(self, item):
-		""" Validate raw material items"""
-
 		if item[0]['name'] == self.doc.item:
 			msgprint("Item_code: %s in materials tab cannot be same as FG Item", 
 				item[0]['name'], raise_exception=1)
@@ -130,7 +116,6 @@
 			as per valuation method (MAR/FIFO) 
 			as on costing date	
 		"""
-
 		dt = self.doc.costing_date or nowdate()
 		time = self.doc.costing_date == nowdate() and now().split()[1] or '23:59'
 		warehouse = sql("select warehouse from `tabBin` where item_code = %s", arg['item_code'])
diff --git a/manufacturing/doctype/bom/bom.txt b/manufacturing/doctype/bom/bom.txt
index 90bcfc7..14fa23e 100644
--- a/manufacturing/doctype/bom/bom.txt
+++ b/manufacturing/doctype/bom/bom.txt
@@ -2,9 +2,9 @@
  {
   "owner": "Administrator", 
   "docstatus": 0, 
-  "creation": "2012-12-10 19:03:43", 
+  "creation": "2012-12-12 10:17:41", 
   "modified_by": "Administrator", 
-  "modified": "2012-12-11 15:13:42"
+  "modified": "2012-12-13 11:43:11"
  }, 
  {
   "istable": 0, 
@@ -68,6 +68,7 @@
  }, 
  {
   "description": "Total quantity of items for which raw materials required and operations done will be defined", 
+  "default": "1", 
   "oldfieldtype": "Currency", 
   "doctype": "DocField", 
   "label": "Quantity", 
@@ -79,19 +80,28 @@
  }, 
  {
   "doctype": "DocField", 
+  "label": "Item UOM", 
+  "options": "link:UOM", 
+  "fieldname": "uom", 
+  "fieldtype": "Select", 
+  "permlevel": 1
+ }, 
+ {
+  "doctype": "DocField", 
   "width": "50%", 
   "fieldname": "column_break1", 
   "fieldtype": "Column Break", 
   "permlevel": 0
  }, 
  {
+  "permlevel": 0, 
   "no_copy": 1, 
   "oldfieldtype": "Select", 
   "allow_on_submit": 1, 
   "doctype": "DocField", 
   "label": "Is Active", 
   "oldfieldname": "is_active", 
-  "permlevel": 0, 
+  "default": "Yes", 
   "fieldname": "is_active", 
   "fieldtype": "Select", 
   "reqd": 1, 
@@ -204,30 +214,6 @@
   "in_filter": 1
  }, 
  {
-  "doctype": "DocField", 
-  "label": "Item UOM", 
-  "options": "link:UOM", 
-  "fieldname": "uom", 
-  "fieldtype": "Select", 
-  "permlevel": 1
- }, 
- {
-  "oldfieldtype": "Text", 
-  "doctype": "DocField", 
-  "label": "Item Description", 
-  "oldfieldname": "description", 
-  "width": "300px", 
-  "fieldname": "description", 
-  "fieldtype": "Small Text", 
-  "permlevel": 0
- }, 
- {
-  "doctype": "DocField", 
-  "fieldname": "col_break23", 
-  "fieldtype": "Column Break", 
-  "permlevel": 0
- }, 
- {
   "oldfieldtype": "Data", 
   "doctype": "DocField", 
   "label": "Maintained By", 
@@ -237,6 +223,12 @@
   "permlevel": 0
  }, 
  {
+  "doctype": "DocField", 
+  "fieldname": "col_break23", 
+  "fieldtype": "Column Break", 
+  "permlevel": 0
+ }, 
+ {
   "print_hide": 1, 
   "no_copy": 1, 
   "doctype": "DocField", 
@@ -270,7 +262,7 @@
  {
   "print_hide": 0, 
   "doctype": "DocField", 
-  "label": "Exploded BOM Items", 
+  "label": "BOM Explosion Items", 
   "options": "Simple", 
   "fieldname": "section_break0", 
   "fieldtype": "Section Break", 
@@ -283,7 +275,7 @@
   "no_copy": 1, 
   "oldfieldtype": "Table", 
   "doctype": "DocField", 
-  "label": "Exploded BOM Items", 
+  "label": "BOM Explosion Item", 
   "oldfieldname": "flat_bom_details", 
   "default": "No Toolbar", 
   "fieldname": "flat_bom_details", 
