diff --git a/erpnext/patches/jan_mar_2012/rename_dt.py b/erpnext/patches/jan_mar_2012/rename_dt.py
index 693fd77..7847ee1 100644
--- a/erpnext/patches/jan_mar_2012/rename_dt.py
+++ b/erpnext/patches/jan_mar_2012/rename_dt.py
@@ -129,7 +129,8 @@
 			'periodic_sales_summary', 'monthly_despatched_trend', 'sales', 'sales_order',
 			'sales_order1', 'sales_agentwise_commission', 'test_report', 
 			'territory_wise_sales_-_target_vs_actual_', 
-			'pending_po_items_to_bill1', 'pending_po_items_to_receive1', 'expense_vouchers', 'pending_expense_vouchers')""")
+			'pending_po_items_to_bill1', 'pending_po_items_to_receive1', 
+			'expense_vouchers', 'pending_expense_vouchers', 'shortage_to_indent')""")
 
 	webnotes.conn.sql("""
 		DELETE FROM `tabSearch Criteria`
diff --git a/erpnext/projects/doctype/project/project.js b/erpnext/projects/doctype/project/project.js
index 801ba56..faa175f 100644
--- a/erpnext/projects/doctype/project/project.js
+++ b/erpnext/projects/doctype/project/project.js
@@ -52,4 +52,4 @@
 //--------- calculate gross profit --------------------------------
 cur_frm.cscript.est_material_cost = function(doc, cdt, cdn){
   get_server_fields('get_gross_profit','','',doc, cdt, cdn, 1);
-}
\ No newline at end of file
+}
diff --git a/erpnext/projects/doctype/task/task.js b/erpnext/projects/doctype/task/task.js
index c88382b..af4864b 100644
--- a/erpnext/projects/doctype/task/task.js
+++ b/erpnext/projects/doctype/task/task.js
@@ -119,4 +119,4 @@
       cur_frm.cscript.refresh(cur_frm.doc, cur_frm.doc.doctype, cur_frm.doc.name);
     }
   });  
-}
\ No newline at end of file
+}
diff --git a/erpnext/projects/doctype/task/task.py b/erpnext/projects/doctype/task/task.py
index 51a9875..9cca9a7 100644
--- a/erpnext/projects/doctype/task/task.py
+++ b/erpnext/projects/doctype/task/task.py
@@ -51,7 +51,7 @@
 	
 	def get_allocated_to_name(self):
 		as_em = sql("select first_name, last_name from `tabProfile` where name=%s",str(self.doc.allocated_to))
-		ret = { 'allocated_to_name' : as_em and (as_em[0][0] + ' ' + as_em[0][1]) or ''}
+		ret = { 'allocated_to_name' : as_em and (cstr(as_em[0][0]) + ' ' + cstr(as_em[0][1])) or ''}
 		return ret
 
 	# validate
@@ -95,7 +95,7 @@
 				sql("delete from tabEvent where ref_type='Task' and ref_name=%s", self.doc.name)
 				self.add_calendar_event()
 			else:
-				msgprint("An Expeted start date has not been set for this task.Please set a, 'Expected Start date'\
+				msgprint("An Expeted start date has not been set for this task.Please set 'Expected Start date'\
 				to add an event to allocated persons calender.You can save a task without this also.")
 			
 			
diff --git a/js/all-app.js b/js/all-app.js
index c53302a..6f5c668 100644
--- a/js/all-app.js
+++ b/js/all-app.js
@@ -379,7 +379,7 @@
   %(description)s\
   <hr>\
   <p><button class="btn btn-info btn-small"\
-    onclick="wn.set_route(\'Form\', \'%(doctype)s\', \'New %(doctype)s\');"\
+    onclick="newdoc(\'%(doctype)s\');"\
     >Make a new %(doctype_label)s</button>\
   </p></div>',{doctype_label:get_doctype_label(this.doctype),doctype:this.doctype,description:wn.markdown(locals.DocType[this.doctype].description||'')});},render_row:function(row,data){data.doctype=this.doctype;this.listview.render(row,data,this);},get_query_fields:function(){return this.listview.fields;},get_args:function(){return{doctype:this.doctype,fields:this.get_query_fields(),filters:this.filter_list.get_filters(),docstatus:this.can_submit?$.map(this.$page.find('.show-docstatus :checked'),function(inp){return $(inp).attr('data-docstatus')}):[]}},add_delete_option:function(){var me=this;if(this.can_delete){this.add_button('Delete',function(){me.delete_items();},'icon-remove')}},delete_items:function(){var me=this;var dl=$.map(me.$page.find('.list-delete:checked'),function(e){return $(e).data('name');});if(!dl.length)
 return;if(!confirm('This is PERMANENT action and you cannot undo. Continue?')){return;}
diff --git a/js/all-web.js b/js/all-web.js
index 8a39b46..8ad6625 100644
--- a/js/all-web.js
+++ b/js/all-web.js
@@ -266,7 +266,7 @@
   %(description)s\
   <hr>\
   <p><button class="btn btn-info btn-small"\
-    onclick="wn.set_route(\'Form\', \'%(doctype)s\', \'New %(doctype)s\');"\
+    onclick="newdoc(\'%(doctype)s\');"\
     >Make a new %(doctype_label)s</button>\
   </p></div>',{doctype_label:get_doctype_label(this.doctype),doctype:this.doctype,description:wn.markdown(locals.DocType[this.doctype].description||'')});},render_row:function(row,data){data.doctype=this.doctype;this.listview.render(row,data,this);},get_query_fields:function(){return this.listview.fields;},get_args:function(){return{doctype:this.doctype,fields:this.get_query_fields(),filters:this.filter_list.get_filters(),docstatus:this.can_submit?$.map(this.$page.find('.show-docstatus :checked'),function(inp){return $(inp).attr('data-docstatus')}):[]}},add_delete_option:function(){var me=this;if(this.can_delete){this.add_button('Delete',function(){me.delete_items();},'icon-remove')}},delete_items:function(){var me=this;var dl=$.map(me.$page.find('.list-delete:checked'),function(e){return $(e).data('name');});if(!dl.length)
 return;if(!confirm('This is PERMANENT action and you cannot undo. Continue?')){return;}
