diff --git a/erpnext/healthcare/setup.py b/erpnext/healthcare/setup.py
index f30f42c..1dd8804 100644
--- a/erpnext/healthcare/setup.py
+++ b/erpnext/healthcare/setup.py
@@ -187,21 +187,93 @@
 def create_lab_test_items():
 	records = [
 		{"doctype": "Item", "item_code": "MCH", "item_name": "MCH", "item_group": _("Laboratory"),
-			"stock_uom": _("Unit"), "is_stock_item": 0, "is_purchase_item": 0, "is_sales_item": 1},
+			"stock_uom": _("Unit"), "is_stock_item": 0, "is_purchase_item": 0, "is_sales_item": 1,
+		    "item_defaults": [{
+		      "company": "_Test Company",
+		      "default_warehouse": "_Test Warehouse - _TC",
+		      "expense_account": "_Test Account Cost for Goods Sold - _TC",
+		      "buying_cost_center": "_Test Cost Center - _TC",
+		      "selling_cost_center": "_Test Cost Center - _TC",
+		      "income_account": "Sales - _TC"
+		    }]
+		},
 		{"doctype": "Item", "item_code": "LDL", "item_name": "LDL", "item_group": _("Laboratory"),
-			"stock_uom": _("Unit"), "is_stock_item": 0, "is_purchase_item": 0, "is_sales_item": 1},
+			"stock_uom": _("Unit"), "is_stock_item": 0, "is_purchase_item": 0, "is_sales_item": 1,
+		    "item_defaults": [{
+		      "company": "_Test Company",
+		      "default_warehouse": "_Test Warehouse - _TC",
+		      "expense_account": "_Test Account Cost for Goods Sold - _TC",
+		      "buying_cost_center": "_Test Cost Center - _TC",
+		      "selling_cost_center": "_Test Cost Center - _TC",
+		      "income_account": "Sales - _TC"
+		    }]
+		},
 		{"doctype": "Item", "item_code": "GTT", "item_name": "GTT", "item_group": _("Laboratory"),
-			"stock_uom": _("Unit"), "is_stock_item": 0, "is_purchase_item": 0, "is_sales_item": 1},
+			"stock_uom": _("Unit"), "is_stock_item": 0, "is_purchase_item": 0, "is_sales_item": 1,
+		    "item_defaults": [{
+		      "company": "_Test Company",
+		      "default_warehouse": "_Test Warehouse - _TC",
+		      "expense_account": "_Test Account Cost for Goods Sold - _TC",
+		      "buying_cost_center": "_Test Cost Center - _TC",
+		      "selling_cost_center": "_Test Cost Center - _TC",
+		      "income_account": "Sales - _TC"
+		    }]
+		},
 		{"doctype": "Item", "item_code": "HDL", "item_name": "HDL", "item_group": _("Laboratory"),
-			"stock_uom": _("Unit"), "is_stock_item": 0, "is_purchase_item": 0, "is_sales_item": 1},
+			"stock_uom": _("Unit"), "is_stock_item": 0, "is_purchase_item": 0, "is_sales_item": 1,
+		    "item_defaults": [{
+		      "company": "_Test Company",
+		      "default_warehouse": "_Test Warehouse - _TC",
+		      "expense_account": "_Test Account Cost for Goods Sold - _TC",
+		      "buying_cost_center": "_Test Cost Center - _TC",
+		      "selling_cost_center": "_Test Cost Center - _TC",
+		      "income_account": "Sales - _TC"
+		    }]
+		},
 		{"doctype": "Item", "item_code": "BILT", "item_name": "BILT", "item_group": _("Laboratory"),
-			"stock_uom": _("Unit"), "is_stock_item": 0, "is_purchase_item": 0, "is_sales_item": 1},
+			"stock_uom": _("Unit"), "is_stock_item": 0, "is_purchase_item": 0, "is_sales_item": 1,
+		    "item_defaults": [{
+		      "company": "_Test Company",
+		      "default_warehouse": "_Test Warehouse - _TC",
+		      "expense_account": "_Test Account Cost for Goods Sold - _TC",
+		      "buying_cost_center": "_Test Cost Center - _TC",
+		      "selling_cost_center": "_Test Cost Center - _TC",
+		      "income_account": "Sales - _TC"
+		    }]
+		},
 		{"doctype": "Item", "item_code": "BILD", "item_name": "BILD", "item_group": _("Laboratory"),
-			"stock_uom": _("Unit"), "is_stock_item": 0, "is_purchase_item": 0, "is_sales_item": 1},
+			"stock_uom": _("Unit"), "is_stock_item": 0, "is_purchase_item": 0, "is_sales_item": 1,
+		    "item_defaults": [{
+		      "company": "_Test Company",
+		      "default_warehouse": "_Test Warehouse - _TC",
+		      "expense_account": "_Test Account Cost for Goods Sold - _TC",
+		      "buying_cost_center": "_Test Cost Center - _TC",
+		      "selling_cost_center": "_Test Cost Center - _TC",
+		      "income_account": "Sales - _TC"
+		    }]
+		},
 		{"doctype": "Item", "item_code": "BP", "item_name": "BP", "item_group": _("Laboratory"),
-			"stock_uom": _("Unit"), "is_stock_item": 0, "is_purchase_item": 0, "is_sales_item": 1},
+			"stock_uom": _("Unit"), "is_stock_item": 0, "is_purchase_item": 0, "is_sales_item": 1,
+		    "item_defaults": [{
+		      "company": "_Test Company",
+		      "default_warehouse": "_Test Warehouse - _TC",
+		      "expense_account": "_Test Account Cost for Goods Sold - _TC",
+		      "buying_cost_center": "_Test Cost Center - _TC",
+		      "selling_cost_center": "_Test Cost Center - _TC",
+		      "income_account": "Sales - _TC"
+		    }]
+		},
 		{"doctype": "Item", "item_code": "BS", "item_name": "BS", "item_group": _("Laboratory"),
-			"stock_uom": _("Unit"), "is_stock_item": 0, "is_purchase_item": 0, "is_sales_item": 1}
+			"stock_uom": _("Unit"), "is_stock_item": 0, "is_purchase_item": 0, "is_sales_item": 1,
+		    "item_defaults": [{
+		      "company": "_Test Company",
+		      "default_warehouse": "_Test Warehouse - _TC",
+		      "expense_account": "_Test Account Cost for Goods Sold - _TC",
+		      "buying_cost_center": "_Test Cost Center - _TC",
+		      "selling_cost_center": "_Test Cost Center - _TC",
+		      "income_account": "Sales - _TC"
+		    }]
+		}
 	]
 	insert_record(records)
 
diff --git a/erpnext/manufacturing/doctype/bom/bom.py b/erpnext/manufacturing/doctype/bom/bom.py
index 18914eb..b809eaf 100644
--- a/erpnext/manufacturing/doctype/bom/bom.py
+++ b/erpnext/manufacturing/doctype/bom/bom.py
@@ -432,9 +432,9 @@
 		base_total_sm_cost = 0
 
 		for d in self.get('scrap_items'):
-			d.base_rate = d.rate * self.conversion_rate
+			d.base_rate = flt(d.rate, d.precision("rate")) * flt(self.conversion_rate, self.precision("conversion_rate"))
 			d.amount = flt(d.rate, d.precision("rate")) * flt(d.stock_qty, d.precision("stock_qty"))
-			d.base_amount = d.amount * self.conversion_rate
+			d.base_amount = flt(d.amount, d.precision("amount")) * flt(self.conversion_rate, self.precision("conversion_rate"))
 			total_sm_cost += d.amount
 			base_total_sm_cost += d.base_amount
 
diff --git a/erpnext/manufacturing/doctype/bom/test_bom.py b/erpnext/manufacturing/doctype/bom/test_bom.py
index 8a6eb54..5b8acaf 100644
--- a/erpnext/manufacturing/doctype/bom/test_bom.py
+++ b/erpnext/manufacturing/doctype/bom/test_bom.py
@@ -6,12 +6,17 @@
 import unittest
 import frappe
 from frappe.utils import cstr
+from frappe.test_runner import make_test_records
 from erpnext.stock.doctype.stock_reconciliation.test_stock_reconciliation import create_stock_reconciliation
 from erpnext.manufacturing.doctype.bom_update_tool.bom_update_tool import update_cost
 
 test_records = frappe.get_test_records('BOM')
 
 class TestBOM(unittest.TestCase):
+	def setUp(self):
+		if not frappe.get_value('Item', '_Test Item'):
+			make_test_records('Item')
+
 	def test_get_items(self):
 		from erpnext.manufacturing.doctype.bom.bom import get_bom_items_as_dict
 		items_dict = get_bom_items_as_dict(bom=get_default_bom(),
diff --git a/erpnext/stock/doctype/item/test_records.json b/erpnext/stock/doctype/item/test_records.json
index fc44fa7..dbb9b59 100644
--- a/erpnext/stock/doctype/item/test_records.json
+++ b/erpnext/stock/doctype/item/test_records.json
@@ -169,7 +169,15 @@
   "item_code": "_Test Non Stock Item",
   "item_group": "_Test Item Group Desktops",
   "item_name": "_Test Non Stock Item",
-  "stock_uom": "_Test UOM"
+  "stock_uom": "_Test UOM",
+  "item_defaults": [{
+    "company": "_Test Company",
+    "default_warehouse": "_Test Warehouse - _TC",
+    "expense_account": "_Test Account Cost for Goods Sold - _TC",
+    "buying_cost_center": "_Test Cost Center - _TC",
+    "selling_cost_center": "_Test Cost Center - _TC",
+    "income_account": "Sales - _TC"
+  }]
  },
  {
   "description": "_Test Serialized Item 8",
