diff --git a/erpnext/manufacturing/doctype/production_order/production_order.js b/erpnext/manufacturing/doctype/production_order/production_order.js
index 6d16cd4..971f007 100644
--- a/erpnext/manufacturing/doctype/production_order/production_order.js
+++ b/erpnext/manufacturing/doctype/production_order/production_order.js
@@ -186,15 +186,24 @@
 	},
 
 	bom_no: function() {
-		return this.frm.call({
-			doc: this.frm.doc,
-			method: "set_production_order_operations"
-		});
+		if (this.frm.doc.track_operations) {
+			return this.frm.call({
+				doc: this.frm.doc,
+				method: "set_production_order_operations"
+			});
+		}
 	},
 	
 	qty: function() {
 		frappe.ui.form.trigger("Production Order", 'bom_no')
 	},
+	
+	track_operations: function() {
+		return this.frm.call({
+			doc: this.frm.doc,
+			method: "track_operation"
+		});
+	},
 
 	show_time_logs: function(doc, cdt, cdn) {
 		var child = locals[cdt][cdn]
diff --git a/erpnext/manufacturing/doctype/production_order/production_order.json b/erpnext/manufacturing/doctype/production_order/production_order.json
index 07cc5c6..ccf3f68 100644
--- a/erpnext/manufacturing/doctype/production_order/production_order.json
+++ b/erpnext/manufacturing/doctype/production_order/production_order.json
@@ -74,6 +74,14 @@
    "permlevel": 0
   }, 
   {
+   "default": "1", 
+   "fieldname": "track_operations", 
+   "fieldtype": "Check", 
+   "label": "Track Operations", 
+   "permlevel": 0, 
+   "precision": ""
+  }, 
+  {
    "fieldname": "column_break1", 
    "fieldtype": "Column Break", 
    "oldfieldtype": "Column Break", 
@@ -207,7 +215,7 @@
    "read_only": 1
   }, 
   {
-   "depends_on": "", 
+   "depends_on": "track_operations", 
    "fieldname": "operations_section", 
    "fieldtype": "Section Break", 
    "label": "Operations", 
@@ -216,6 +224,7 @@
    "precision": ""
   }, 
   {
+   "depends_on": "", 
    "fieldname": "operations", 
    "fieldtype": "Table", 
    "label": "Operations", 
@@ -225,6 +234,7 @@
    "read_only": 1
   }, 
   {
+   "depends_on": "track_operations", 
    "fieldname": "section_break_22", 
    "fieldtype": "Section Break", 
    "label": "Operation Cost", 
@@ -358,7 +368,7 @@
  "idx": 1, 
  "in_create": 0, 
  "is_submittable": 1, 
- "modified": "2015-04-13 02:44:17.319988", 
+ "modified": "2015-07-09 03:31:01.291811", 
  "modified_by": "Administrator", 
  "module": "Manufacturing", 
  "name": "Production Order", 
diff --git a/erpnext/manufacturing/doctype/production_order/production_order.py b/erpnext/manufacturing/doctype/production_order/production_order.py
index 0f805d0..52061a0 100644
--- a/erpnext/manufacturing/doctype/production_order/production_order.py
+++ b/erpnext/manufacturing/doctype/production_order/production_order.py
@@ -4,7 +4,7 @@
 from __future__ import unicode_literals
 import frappe, json
 
-from frappe.utils import flt, nowdate, get_datetime, getdate, date_diff, cint
+from frappe.utils import flt, nowdate, get_datetime, getdate, date_diff, cint, now
 from frappe import _
 from frappe.model.document import Document
 from erpnext.manufacturing.doctype.bom.bom import validate_bom_no
@@ -174,13 +174,17 @@
 
 	def set_production_order_operations(self):
 		"""Fetch operations from BOM and set in 'Production Order'"""
-
+		if not self.bom_no:
+			return
 		self.set('operations', [])
-
 		operations = frappe.db.sql("""select operation, description, workstation, idx,
 			hour_rate, time_in_mins, "Pending" as status from `tabBOM Operation`
 			where parent = %s order by idx""", self.bom_no, as_dict=1)
-
+		if operations:
+			self.track_operations=1
+		else:
+			self.track_operations=0
+			frappe.msgprint(_("Cannot 'track operations' as selected BOM does not have Operations."))
 		self.set('operations', operations)
 		self.calculate_time()
 
@@ -219,14 +223,12 @@
 		for i, d in enumerate(self.operations):
 			self.set_operation_start_end_time(i, d)
 
-			if not d.workstation:
-				continue
-
 			time_log = make_time_log(self.name, d.operation, d.planned_start_time, d.planned_end_time,
 				flt(self.qty) - flt(d.completed_qty), self.project_name, d.workstation, operation_id=d.name)
 
-			# validate operating hours if workstation [not mandatory] is specified
-			self.check_operation_fits_in_working_hours(d)
+			if d.workstation:
+				# validate operating hours if workstation [not mandatory] is specified
+				self.check_operation_fits_in_working_hours(d)
 
 			original_start_time = time_log.from_time
 			while True:
@@ -327,6 +329,12 @@
 		
 		if frappe.db.get_value("Item", self.production_item, "has_variants"):
 			frappe.throw(_("Production Order cannot be raised against a Item Template"))
+	
+	def track_operation(self):
+		if self.track_operations:
+			self.set_production_order_operations()
+		else:
+			self.set('operations', [])
 
 @frappe.whitelist()
 def get_item_details(item):
@@ -391,7 +399,7 @@
 	return data
 
 @frappe.whitelist()
-def make_time_log(name, operation, from_time, to_time, qty=None,  project=None, workstation=None, operation_id=None):
+def make_time_log(name, operation, from_time=now(), to_time=now(), qty=None,  project=None, workstation=None, operation_id=None):
 	time_log =  frappe.new_doc("Time Log")
 	time_log.for_manufacturing = 1
 	time_log.from_time = from_time
diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.py b/erpnext/stock/doctype/stock_entry/stock_entry.py
index c3597e3..fb1ec3d 100644
--- a/erpnext/stock/doctype/stock_entry/stock_entry.py
+++ b/erpnext/stock/doctype/stock_entry/stock_entry.py
@@ -201,6 +201,9 @@
 	def check_if_operations_completed(self):
 		"""Check if Time Logs are completed against before manufacturing to capture operating costs."""
 		prod_order = frappe.get_doc("Production Order", self.production_order)
+		if not prod_order.track_operations:
+			return
+			
 		for d in prod_order.get("operations"):
 			total_completed_qty = flt(self.fg_completed_qty) + flt(prod_order.produced_qty)
 			if total_completed_qty > flt(d.completed_qty):
