diff --git a/erpnext/utilities/doctype/activity_dashboard_control/activity_dashboard_control.py b/erpnext/utilities/doctype/activity_dashboard_control/activity_dashboard_control.py
index e3063e9..696a25d 100644
--- a/erpnext/utilities/doctype/activity_dashboard_control/activity_dashboard_control.py
+++ b/erpnext/utilities/doctype/activity_dashboard_control/activity_dashboard_control.py
@@ -50,10 +50,10 @@
             if d=='Lead':
                 dt[d] = {'To follow up':sql("select count(name) from tabLead where status!='Converted' and docstatus=1")[0][0] or 0}
                 
-            # if Enquiry
+            # if Opportunity
             elif d=='Enquiries':
                 args = {}
-                args['Quotations to be sent'] = sql("select count(distinct(t2.name)) from `tabQuotation`t1, `tabEnquiry`t2 where t1.enq_no!=t2.name and t2.docstatus=1")[0][0] or 0
+                args['Quotations to be sent'] = sql("select count(distinct(t2.name)) from `tabQuotation`t1, `tabOpportunity`t2 where t1.enq_no!=t2.name and t2.docstatus=1")[0][0] or 0
                 args['To follow up'] = sql("select count(name) from `tabQuotation` where docstatus=0")[0][0] or 0       #Draft
                 dt[d] = args
                 
@@ -69,16 +69,16 @@
             # if Invoice
             elif d=='Invoices':
                 args = {}
-                args['To receive payment'] = sql("select count(name) from `tabReceivable Voucher` where docstatus=1 and due_date>now() and outstanding_amount!=0")[0][0] or 0
-                args['Overdue'] = sql("select count(name) from `tabReceivable Voucher` where docstatus=1 and due_date<now() and outstanding_amount!=0")[0][0] or 0  
-                args['To be submitted'] = sql("select count(name) from `tabReceivable Voucher` where docstatus=0")[0][0] or 0       #Draft
+                args['To receive payment'] = sql("select count(name) from `tabSales Invoice` where docstatus=1 and due_date>now() and outstanding_amount!=0")[0][0] or 0
+                args['Overdue'] = sql("select count(name) from `tabSales Invoice` where docstatus=1 and due_date<now() and outstanding_amount!=0")[0][0] or 0  
+                args['To be submitted'] = sql("select count(name) from `tabSales Invoice` where docstatus=0")[0][0] or 0       #Draft
                 dt[d] = args
             
-            # if Indent 
-            elif d=='Indent':
+            # if Purchase Request 
+            elif d=='Purchase Request':
                 args = {}
-                args['Purchase Order to be made'] = sql("select count(name) from `tabIndent` where per_ordered<100 and docstatus=1")[0][0] or 0
-                args['To be submitted'] = sql("select count(name) from `tabIndent` where status='Draft'")[0][0] or 0       #Draft
+                args['Purchase Order to be made'] = sql("select count(name) from `tabPurchase Request` where per_ordered<100 and docstatus=1")[0][0] or 0
+                args['To be submitted'] = sql("select count(name) from `tabPurchase Request` where status='Draft'")[0][0] or 0       #Draft
                 dt[d] = args
                 
             # if Purchase Order    
@@ -92,13 +92,13 @@
             # if Bills
             elif d=='Bills':
                 args = {}
-                args['To be payed'] = sql("select count(name) from `tabPayable Voucher` where docstatus=1 and outstanding_amount!=0")[0][0] or 0
-                args['To be submitted'] = sql("select count(name) from `tabPayable Voucher` where docstatus=0")[0][0] or 0       #Draft
+                args['To be payed'] = sql("select count(name) from `tabPurchase Invoice` where docstatus=1 and outstanding_amount!=0")[0][0] or 0
+                args['To be submitted'] = sql("select count(name) from `tabPurchase Invoice` where docstatus=0")[0][0] or 0       #Draft
                 dt[d] = args
                 
             # if Tasks
             elif d=='Tasks':
-                dt[d] = {'Open': sql("select count(name) from `tabTicket` where status='Open'")[0][0] or 0}
+                dt[d] = {'Open': sql("select count(name) from `tabTask` where status='Open'")[0][0] or 0}
                 
             # if Maintenance
             elif d=='Serial No':
diff --git a/erpnext/utilities/doctype/bulk_rename_tool/bulk_rename_tool.txt b/erpnext/utilities/doctype/bulk_rename_tool/bulk_rename_tool.txt
index c18a60f..d8f9c00 100644
--- a/erpnext/utilities/doctype/bulk_rename_tool/bulk_rename_tool.txt
+++ b/erpnext/utilities/doctype/bulk_rename_tool/bulk_rename_tool.txt
@@ -119,7 +119,7 @@
 		'fieldtype': u'Link',
 		'label': u'Amended From',
 		'no_copy': 1,
-		'options': u'Receivable Voucher',
+		'options': u'Sales Invoice',
 		'permlevel': 1,
 		'print_hide': 1
 	}
diff --git a/erpnext/utilities/doctype/receiver_detail/__init__.py b/erpnext/utilities/doctype/receiver_detail/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/utilities/doctype/receiver_detail/__init__.py
+++ /dev/null
diff --git a/erpnext/utilities/doctype/reposting_tool/reposting_tool.py b/erpnext/utilities/doctype/reposting_tool/reposting_tool.py
index 82df4e3..cbe9380 100644
--- a/erpnext/utilities/doctype/reposting_tool/reposting_tool.py
+++ b/erpnext/utilities/doctype/reposting_tool/reposting_tool.py
@@ -64,16 +64,16 @@
 		act_qty = act_qty and flt(act_qty[0][0]) or 0
 	
 		# get indented_qty 
-		ind_qty = sql("select sum(if( ifnull(t2.qty, 0) > ifnull(t2.ordered_qty, 0), ifnull(t2.qty, 0) - ifnull(t2.ordered_qty, 0), 0) ) from `tabIndent` t1, `tabIndent Detail`t2 where t1.name = t2.parent and t1.docstatus = 1 and t2.warehouse = '%s' and t2.item_code = '%s' and status != 'Stopped'" % (wh, item))
+		ind_qty = sql("select sum(if( ifnull(t2.qty, 0) > ifnull(t2.ordered_qty, 0), ifnull(t2.qty, 0) - ifnull(t2.ordered_qty, 0), 0) ) from `tabPurchase Request` t1, `tabPurchase Request Item`t2 where t1.name = t2.parent and t1.docstatus = 1 and t2.warehouse = '%s' and t2.item_code = '%s' and status != 'Stopped'" % (wh, item))
 		ind_qty = ind_qty and flt(ind_qty[0][0]) or 0
 		
 		# get ordered_qty
-		ord_qty = sql("select sum(if ( ifnull(t2.qty, 0) > ifnull(t2.received_qty, 0), (ifnull(t2.qty, 0) - ifnull(t2.received_qty, 0)) * ifnull(t2.conversion_factor, 0) , 0) ) from `tabPurchase Order` t1, `tabPO Detail` t2 where t1.name = t2.parent and t1.docstatus = 1 and t2.warehouse = '%s' and t2.item_code = '%s' and status != 'Stopped'" % (wh, item))
+		ord_qty = sql("select sum(if ( ifnull(t2.qty, 0) > ifnull(t2.received_qty, 0), (ifnull(t2.qty, 0) - ifnull(t2.received_qty, 0)) * ifnull(t2.conversion_factor, 0) , 0) ) from `tabPurchase Order` t1, `tabPurchase Order Item` t2 where t1.name = t2.parent and t1.docstatus = 1 and t2.warehouse = '%s' and t2.item_code = '%s' and status != 'Stopped'" % (wh, item))
 		ord_qty = ord_qty and flt(ord_qty[0][0]) or 0
 		
 
 		# get reserved_qty
-		res_qty =sql("select sum(if ( ifnull(t2.qty, 0) > ifnull(t2.delivered_qty, 0), ifnull(t2.qty, 0) - ifnull(t2.delivered_qty, 0) , 0) ) from `tabSales Order` t1, `tabSales Order Detail` t2 where t1.name = t2.parent and t1.docstatus = 1 and t2.reserved_warehouse = '%s' and t2.item_code = '%s' and status != 'Stopped'" % (wh, item))
+		res_qty =sql("select sum(if ( ifnull(t2.qty, 0) > ifnull(t2.delivered_qty, 0), ifnull(t2.qty, 0) - ifnull(t2.delivered_qty, 0) , 0) ) from `tabSales Order` t1, `tabSales Order Item` t2 where t1.name = t2.parent and t1.docstatus = 1 and t2.reserved_warehouse = '%s' and t2.item_code = '%s' and status != 'Stopped'" % (wh, item))
 		res_qty = res_qty and flt(res_qty[0][0]) or 0
 
 		# get planned_qty 
diff --git a/erpnext/utilities/doctype/sms_control/sms_control.js b/erpnext/utilities/doctype/sms_control/sms_control.js
index 42d961f..e28e9b2 100644
--- a/erpnext/utilities/doctype/sms_control/sms_control.js
+++ b/erpnext/utilities/doctype/sms_control/sms_control.js
@@ -82,28 +82,28 @@
 	var sms_man = new SMSManager();
 	var default_msg = {
 		'Lead'				: '',
-		'Enquiry'			: 'Your enquiry has been logged into the system. Ref No: ' + doc.name,
+		'Opportunity'			: 'Your enquiry has been logged into the system. Ref No: ' + doc.name,
 		'Quotation'			: 'Quotation ' + doc.name + ' has been sent via email. Thanks!',
 		'Sales Order'		: 'Sales Order ' + doc.name + ' has been created against ' 
 					+ (doc.quotation_no ? ('Quote No:' + doc.quotation_no) : '')
 					+ (doc.po_no ? (' for your PO: ' + doc.po_no) : ''),
 		'Delivery Note'		: 'Items has been delivered against delivery note: ' + doc.name
 					+ (doc.po_no ? (' for your PO: ' + doc.po_no) : ''),		
-		'Receivable Voucher': 'Invoice ' + doc.name + ' has been sent via email '
+		'Sales Invoice': 'Invoice ' + doc.name + ' has been sent via email '
 					+ (doc.po_no ? (' for your PO: ' + doc.po_no) : ''),
-		'Indent'			: 'Indent ' + doc.name + ' has been raised in the system',
+		'Purchase Request'			: 'Purchase Request ' + doc.name + ' has been raised in the system',
 		'Purchase Order'	: 'Purchase Order ' + doc.name + ' has been sent via email',
 		'Purchase Receipt'	: 'Items has been received against purchase receipt: ' + doc.name
 	}
 
-	if (in_list(['Quotation', 'Sales Order', 'Delivery Note', 'Receivable Voucher'], doc.doctype))
+	if (in_list(['Quotation', 'Sales Order', 'Delivery Note', 'Sales Invoice'], doc.doctype))
 		sms_man.show(doc.contact_person, 'customer', doc.customer, '', default_msg[doc.doctype]);
 	else if (in_list(['Purchase Order', 'Purchase Receipt'], doc.doctype))
 		sms_man.show(doc.contact_person, 'supplier', doc.supplier, '', default_msg[doc.doctype]);
 	else if (doc.doctype == 'Lead')
 		sms_man.show('', '', '', doc.mobile_no, default_msg[doc.doctype]);
-	else if (doc.doctype == 'Enquiry')
+	else if (doc.doctype == 'Opportunity')
 		sms_man.show('', '', '', doc.contact_no, default_msg[doc.doctype]);
-	else if (doc.doctype == 'Indent')
+	else if (doc.doctype == 'Purchase Request')
 		sms_man.show('', '', '', '', default_msg[doc.doctype]);
 }
diff --git a/erpnext/utilities/doctype/sms_control/sms_control.py b/erpnext/utilities/doctype/sms_control/sms_control.py
index 9d11283..f19ccf1 100644
--- a/erpnext/utilities/doctype/sms_control/sms_control.py
+++ b/erpnext/utilities/doctype/sms_control/sms_control.py
@@ -79,7 +79,7 @@
 
 	def get_sender_name(self):
 		"returns name as SMS sender"
-		sender_name = webnotes.conn.get_value('Manage Account', None, 'sms_sender_name') or 'ERPNXT'
+		sender_name = webnotes.conn.get_value('Global Defaults', None, 'sms_sender_name') or 'ERPNXT'
 		if len(sender_name) > 6:
 			msgprint("""
 				As per TRAI rule, sender name must be exactly 6 characters.
diff --git a/erpnext/utilities/doctype/todo_item/__init__.py b/erpnext/utilities/doctype/sms_receiver/__init__.py
similarity index 100%
copy from erpnext/utilities/doctype/todo_item/__init__.py
copy to erpnext/utilities/doctype/sms_receiver/__init__.py
diff --git a/erpnext/utilities/doctype/receiver_detail/receiver_detail.txt b/erpnext/utilities/doctype/sms_receiver/sms_receiver.txt
similarity index 90%
rename from erpnext/utilities/doctype/receiver_detail/receiver_detail.txt
rename to erpnext/utilities/doctype/sms_receiver/sms_receiver.txt
index 196883b..a36b98a 100644
--- a/erpnext/utilities/doctype/receiver_detail/receiver_detail.txt
+++ b/erpnext/utilities/doctype/sms_receiver/sms_receiver.txt
@@ -1,4 +1,4 @@
-# DocType, Receiver Detail
+# DocType, SMS Receiver
 [
 
 	# These values are common in all dictionaries
@@ -28,16 +28,16 @@
 		'fieldtype': u'Data',
 		'name': '__common__',
 		'oldfieldtype': u'Data',
-		'parent': u'Receiver Detail',
+		'parent': u'SMS Receiver',
 		'parentfield': u'fields',
 		'parenttype': u'DocType',
 		'permlevel': 0
 	},
 
-	# DocType, Receiver Detail
+	# DocType, SMS Receiver
 	{
 		'doctype': 'DocType',
-		'name': u'Receiver Detail'
+		'name': u'SMS Receiver'
 	},
 
 	# DocField
diff --git a/erpnext/utilities/doctype/todo_item/__init__.py b/erpnext/utilities/doctype/todo/__init__.py
similarity index 100%
rename from erpnext/utilities/doctype/todo_item/__init__.py
rename to erpnext/utilities/doctype/todo/__init__.py
diff --git a/erpnext/utilities/doctype/todo_item/todo_item.txt b/erpnext/utilities/doctype/todo/todo.txt
similarity index 96%
rename from erpnext/utilities/doctype/todo_item/todo_item.txt
rename to erpnext/utilities/doctype/todo/todo.txt
index c7765f4..569e4be 100644
--- a/erpnext/utilities/doctype/todo_item/todo_item.txt
+++ b/erpnext/utilities/doctype/todo/todo.txt
@@ -1,4 +1,4 @@
-# DocType, ToDo Item
+# DocType, ToDo
 [
 
 	# These values are common in all dictionaries
@@ -43,7 +43,7 @@
 	{
 		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': u'ToDo Item',
+		'parent': u'ToDo',
 		'parentfield': u'fields',
 		'parenttype': u'DocType',
 		'permlevel': 0
@@ -54,7 +54,7 @@
 		'create': 1,
 		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': u'ToDo Item',
+		'parent': u'ToDo',
 		'parentfield': u'permissions',
 		'parenttype': u'DocType',
 		'permlevel': 0,
@@ -63,10 +63,10 @@
 		'write': 1
 	},
 
-	# DocType, ToDo Item
+	# DocType, ToDo
 	{
 		'doctype': 'DocType',
-		'name': u'ToDo Item'
+		'name': u'ToDo'
 	},
 
 	# DocPerm
diff --git a/erpnext/utilities/page/messages/messages.py b/erpnext/utilities/page/messages/messages.py
index 3a407dd..3a27bca 100644
--- a/erpnext/utilities/page/messages/messages.py
+++ b/erpnext/utilities/page/messages/messages.py
@@ -25,19 +25,19 @@
 
 	if webnotes.form_dict['contact'] == webnotes.session['user']:
 		# set all messages as read
-		webnotes.conn.sql("""UPDATE `tabComment Widget Record`
+		webnotes.conn.sql("""UPDATE `tabComment`
 		set docstatus = 1 where comment_doctype in ('My Company', 'Message')
 		and comment_docname = %s
 		""", webnotes.user.name)
 				
 		# return messages
-		return webnotes.conn.sql("""select * from `tabComment Widget Record` 
+		return webnotes.conn.sql("""select * from `tabComment` 
 		where (owner=%(contact)s or comment_docname=%(user)s)
 		and comment_doctype in ('My Company', 'Message')
 		order by creation desc
 		limit %(limit_start)s, %(limit_page_length)s""", webnotes.form_dict, as_dict=1)		
 	else:
-		return webnotes.conn.sql("""select * from `tabComment Widget Record` 
+		return webnotes.conn.sql("""select * from `tabComment` 
 		where (owner=%(contact)s and comment_docname=%(user)s)
 		or (owner=%(user)s and comment_docname=%(contact)s)
 		and comment_doctype in ('My Company', 'Message')
@@ -63,7 +63,7 @@
 		arg = {}
 		arg.update(webnotes.form_dict)
 	from webnotes.model.doc import Document
-	d = Document('Comment Widget Record')
+	d = Document('Comment')
 	d.comment = arg['txt']
 	d.comment_docname = arg['contact']
 	d.comment_doctype = 'Message'
@@ -71,6 +71,6 @@
 	
 @webnotes.whitelist()
 def delete(arg=None):
-	webnotes.conn.sql("""delete from `tabComment Widget Record` where name=%s""", 
+	webnotes.conn.sql("""delete from `tabComment` where name=%s""", 
 		webnotes.form_dict['name']);
 	
diff --git a/erpnext/utilities/page/todo/todo.py b/erpnext/utilities/page/todo/todo.py
index 05d55fe..73bd0b0 100644
--- a/erpnext/utilities/page/todo/todo.py
+++ b/erpnext/utilities/page/todo/todo.py
@@ -22,7 +22,7 @@
 	"""get todo list"""
 	return webnotes.conn.sql("""select name, owner, description, date,
 		priority, checked, reference_type, reference_name, assigned_by
-		from `tabToDo Item` where owner=%s 
+		from `tabToDo` where owner=%s 
 		order by field(priority, 'High', 'Medium', 'Low') asc, date asc""",
 		webnotes.session['user'], as_dict=1)
 
@@ -30,7 +30,7 @@
 def edit(arg=None):
 	args = webnotes.form_dict
 
-	d = Document('ToDo Item', args.get('name') or None)
+	d = Document('ToDo', args.get('name') or None)
 	d.description = args['description']
 	d.date = args['date']
 	d.priority = args['priority']
@@ -46,10 +46,10 @@
 @webnotes.whitelist()
 def delete(arg=None):
 	name = webnotes.form_dict['name']
-	d = Document('ToDo Item', name)
+	d = Document('ToDo', name)
 	if d and d.name:
 		notify_assignment(d)
-	webnotes.conn.sql("delete from `tabToDo Item` where name = %s", name)
+	webnotes.conn.sql("delete from `tabToDo` where name = %s", name)
 
 def notify_assignment(d):
 	doc_type = d.reference_type
diff --git a/erpnext/utilities/page/wip_monitor/wip_monitor.js b/erpnext/utilities/page/wip_monitor/wip_monitor.js
index 9e7bdd0..fcfc96f 100644
--- a/erpnext/utilities/page/wip_monitor/wip_monitor.js
+++ b/erpnext/utilities/page/wip_monitor/wip_monitor.js
@@ -39,7 +39,7 @@
 {
 	var me = this;
 	// list of doctypes which user can read
-	var can_read_dt = ['Lead', 'Enquiry', 'Sales Order', 'Receivable Voucher', 'Indent', 'Purchase Order', 'Payable Voucher', 'Delivery Note', 'Task', 'Serial No'];
+	var can_read_dt = ['Lead', 'Opportunity', 'Sales Order', 'Sales Invoice', 'Purchase Request', 'Purchase Order', 'Purchase Invoice', 'Delivery Note', 'Task', 'Serial No'];
   
 	$i('wip_body').innerHTML = '';
 	this.tab = make_table('wip_body',1,0,'100%',[],{padding:'4px'});
@@ -70,7 +70,7 @@
 	var report_dt
   
 	// dictionary for labels to be displayed
-	var wip_lbl_map = {'Lead':'Lead', 'Enquiry':'Enquiries', 'Sales Order':'Sales Order', 'Receivable Voucher':'Invoices', 'Indent':'Indent', 'Purchase Order':'Purchase Order', 'Payable Voucher':'Bills', 'Delivery Note':'Delivery Note', 'Task':'Tasks', 'Serial No':'Maintenance'};
+	var wip_lbl_map = {'Lead':'Lead', 'Opportunity':'Enquiries', 'Sales Order':'Sales Order', 'Sales Invoice':'Invoices', 'Purchase Request':'Purchase Request', 'Purchase Order':'Purchase Order', 'Purchase Invoice':'Bills', 'Delivery Note':'Delivery Note', 'Task':'Tasks', 'Serial No':'Maintenance'};
 
 	// header
 	var h = $a(parent,'h3');
