diff --git a/erpnext/demo/setup/setup_data.py b/erpnext/demo/setup/setup_data.py
index 726c674..2269377 100644
--- a/erpnext/demo/setup/setup_data.py
+++ b/erpnext/demo/setup/setup_data.py
@@ -166,12 +166,16 @@
 		"idx": 1
 	})
 	ss.insert()
+	ss.submit()
 
 	for e in employees:
 		sa  = frappe.new_doc("Salary Structure Assignment")
 		sa.employee = e.name
+		sa.salary_structure = ss.name
 		sa.from_date = "2015-01-01"
 		sa.base = random.random() * 10000
+		sa.insert()
+		sa.submit()
 
 	return ss
 
diff --git a/erpnext/demo/user/hr.py b/erpnext/demo/user/hr.py
index b801686..db2d167 100644
--- a/erpnext/demo/user/hr.py
+++ b/erpnext/demo/user/hr.py
@@ -19,29 +19,25 @@
 
 	# payroll entry
 	if not frappe.db.sql('select name from `tabSalary Slip` where month(adddate(start_date, interval 1 month))=month(curdate())'):
-		# process payroll for previous month
-		payroll_entry = frappe.new_doc("Payroll Entry")
-		payroll_entry.company = frappe.flags.company
-		payroll_entry.payroll_frequency = 'Monthly'
-
-		# select a posting date from the previous month
-		payroll_entry.posting_date = get_last_day(getdate(frappe.flags.current_date) - datetime.timedelta(days=10))
-		payroll_entry.payment_account = frappe.get_value('Account', {'account_type': 'Cash', 'company': erpnext.get_default_company(),'is_group':0}, "name")
-
-		payroll_entry.set_start_end_dates()
-
 		# based on frequency
+		payroll_entry = get_payroll_entry()
 		payroll_entry.salary_slip_based_on_timesheet = 0
+		payroll_entry.save()
 		payroll_entry.create_salary_slips()
 		payroll_entry.submit_salary_slips()
 		payroll_entry.make_accrual_jv_entry()
+		payroll_entry.submit()
 		# payroll_entry.make_journal_entry(reference_date=frappe.flags.current_date,
 		# 	reference_number=random_string(10))
 
+		# based on timesheet
+		payroll_entry = get_payroll_entry()
 		payroll_entry.salary_slip_based_on_timesheet = 1
+		payroll_entry.save()
 		payroll_entry.create_salary_slips()
 		payroll_entry.submit_salary_slips()
 		payroll_entry.make_accrual_jv_entry()
+		payroll_entry.submit()
 		# payroll_entry.make_journal_entry(reference_date=frappe.flags.current_date,
 		# 	reference_number=random_string(10))
 
@@ -72,6 +68,19 @@
 				je.flags.ignore_permissions = 1
 				je.submit()
 
+def get_payroll_entry():
+	# process payroll for previous month
+	payroll_entry = frappe.new_doc("Payroll Entry")
+	payroll_entry.company = frappe.flags.company
+	payroll_entry.payroll_frequency = 'Monthly'
+
+	# select a posting date from the previous month
+	payroll_entry.posting_date = get_last_day(getdate(frappe.flags.current_date) - datetime.timedelta(days=10))
+	payroll_entry.payment_account = frappe.get_value('Account', {'account_type': 'Cash', 'company': erpnext.get_default_company(),'is_group':0}, "name")
+
+	payroll_entry.set_start_end_dates()
+	return payroll_entry
+
 def get_expenses():
 	expenses = []
 	expese_types = frappe.db.sql("""select ect.name, eca.default_account from `tabExpense Claim Type` ect,
@@ -114,7 +123,7 @@
 def make_timesheet_records():
 	employees = get_timesheet_based_salary_slip_employee()
 	for e in employees:
-		ts = make_timesheet(e.employee, simulate = True, billable = 1, activity_type=get_random("Activity Type"))
+		ts = make_timesheet(e.employee, simulate = True, billable = 1, activity_type=get_random("Activity Type"), company=frappe.flags.company)
 		frappe.db.commit()
 
 		rand = random.random()
diff --git a/erpnext/demo/user/purchase.py b/erpnext/demo/user/purchase.py
index ad99de9..a9a603c 100644
--- a/erpnext/demo/user/purchase.py
+++ b/erpnext/demo/user/purchase.py
@@ -122,7 +122,7 @@
 			rfq.append("suppliers", { "supplier": supplier })
 
 def make_subcontract():
-	from erpnext.buying.doctype.purchase_order.purchase_order import make_stock_entry
+	from erpnext.buying.doctype.purchase_order.purchase_order import make_rm_stock_entry
 	item_code = get_random("Item", {"is_sub_contracted_item": 1})
 	if item_code:
 		# make sub-contract PO
@@ -150,7 +150,7 @@
 		make_material_request(po.items[0].item_code, po.items[0].qty)
 
 		# transfer material for sub-contract
-		stock_entry = frappe.get_doc(make_stock_entry(po.name, po.items[0].item_code))
+		stock_entry = frappe.get_doc(make_rm_stock_entry(po.name, po.items[0].item_code))
 		stock_entry.from_warehouse = "Stores - WPL"
 		stock_entry.to_warehouse = "Supplier - WPL"
 		stock_entry.insert()
