diff --git a/erpnext/selling/doctype/quotation/quotation.js b/erpnext/selling/doctype/quotation/quotation.js
index 285c2d1..2807260 100644
--- a/erpnext/selling/doctype/quotation/quotation.js
+++ b/erpnext/selling/doctype/quotation/quotation.js
@@ -145,7 +145,7 @@
 
 cur_frm.cscript.lead = function(doc, cdt, cdn) {
 	if(doc.lead) {
-		get_server_fields('get_lead_details', doc.lead,'', doc, cdt, cdn, 1, callback);
+		get_server_fields('get_lead_details', doc.lead,'', doc, cdt, cdn, 1);
 		unhide_field('territory');
 	}
 }
diff --git a/erpnext/selling/search_criteria/itemwise_delivery_details/itemwise_delivery_details.js b/erpnext/selling/search_criteria/itemwise_delivery_details/itemwise_delivery_details.js
index d501844..b056676 100644
--- a/erpnext/selling/search_criteria/itemwise_delivery_details/itemwise_delivery_details.js
+++ b/erpnext/selling/search_criteria/itemwise_delivery_details/itemwise_delivery_details.js
@@ -15,9 +15,7 @@
 // along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 report.customize_filters = function() {
-  this.filter_fields_dict['Delivery Note'+FILTER_SEP +'From Voucher Date'].df['report_default'] = sys_defaults.year_start_date;
-  this.filter_fields_dict['Delivery Note'+FILTER_SEP +'To Voucher Date'].df['report_default'] = dateutil.obj_to_str(new Date());
   this.filter_fields_dict['Delivery Note'+FILTER_SEP +'From Posting Date'].df['report_default'] = sys_defaults.year_start_date;
   this.filter_fields_dict['Delivery Note'+FILTER_SEP +'To Posting Date'].df['report_default'] = dateutil.obj_to_str(new Date());
 
-}
\ No newline at end of file
+}
diff --git a/erpnext/selling/search_criteria/itemwise_delivery_details/itemwise_delivery_details.py b/erpnext/selling/search_criteria/itemwise_delivery_details/itemwise_delivery_details.py
index e86f8d3..8f868e9 100644
--- a/erpnext/selling/search_criteria/itemwise_delivery_details/itemwise_delivery_details.py
+++ b/erpnext/selling/search_criteria/itemwise_delivery_details/itemwise_delivery_details.py
@@ -15,12 +15,12 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 out=[]
-qty,amt,bil_qty=0,0,0
+qty,amt,bill_amt=0,0,0
 
 for r in res:
   qty += flt(r[col_idx['Quantity']])
   amt += flt(r[col_idx['Amount*']])
-  bil_qty += flt(r[col_idx['Billed Qty']])
+  bill_amt += flt(r[col_idx['Billed Amt']])
   out.append(r)
 
 
@@ -29,5 +29,5 @@
 l_row[col_idx['Item Name']] = '<b>TOTALS</b>'
 l_row[col_idx['Quantity']] = qty
 l_row[col_idx['Amount*']] = amt
-l_row[col_idx['Billed Qty']] = bil_qty
-out.append(l_row)
\ No newline at end of file
+l_row[col_idx['Billed Amt']] = bill_amt
+out.append(l_row)
diff --git a/erpnext/selling/search_criteria/itemwise_delivery_details/itemwise_delivery_details.txt b/erpnext/selling/search_criteria/itemwise_delivery_details/itemwise_delivery_details.txt
index 894aeee..73b602d 100644
--- a/erpnext/selling/search_criteria/itemwise_delivery_details/itemwise_delivery_details.txt
+++ b/erpnext/selling/search_criteria/itemwise_delivery_details/itemwise_delivery_details.txt
@@ -3,20 +3,20 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-04-03 12:49:51',
+		'creation': '2012-04-23 12:46:00',
 		'docstatus': 0,
-		'modified': '2012-04-03 12:49:51',
+		'modified': '2012-05-03 18:13:49',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'columns': u'Delivery Note\x01ID,Delivery Note Item\x01Item Code,Delivery Note Item\x01Item Name,Delivery Note Item\x01Quantity,Delivery Note Item\x01Rate*,Delivery Note Item\x01Amount*,Delivery Note Item\x01Billed Qty,Delivery Note\x01Company',
+		'columns': u'Delivery Note\x01ID,Delivery Note Item\x01Item Code,Delivery Note Item\x01Item Name,Delivery Note Item\x01Quantity,Delivery Note Item\x01Rate*,Delivery Note Item\x01Amount*,Delivery Note Item\x01Billed Amt',
 		'criteria_name': u'Itemwise Delivery Details',
 		'doc_type': u'Delivery Note Item',
 		'doctype': 'Search Criteria',
-		'filters': u"{'Delivery Note\x01Submitted':1,'Delivery Note\x01Status':'','Delivery Note\x01From Voucher Date\x01lower':'','Delivery Note\x01To Voucher Date\x01upper':'','Delivery Note\x01Fiscal Year':''}",
+		'filters': u'{"Delivery Note\\u0001Submitted":1,"Delivery Note\\u0001Status":[""],"Delivery Note\\u0001Fiscal Year":[""]}',
 		'module': u'Selling',
 		'name': '__common__',
 		'page_len': 50,
diff --git a/erpnext/selling/search_criteria/itemwise_sales_details/itemwise_sales_details.py b/erpnext/selling/search_criteria/itemwise_sales_details/itemwise_sales_details.py
index 0e88acb..ba161dd 100644
--- a/erpnext/selling/search_criteria/itemwise_sales_details/itemwise_sales_details.py
+++ b/erpnext/selling/search_criteria/itemwise_sales_details/itemwise_sales_details.py
@@ -15,13 +15,13 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 out=[]
-qty,amt,del_qty,bil_qty=0,0,0,0
+qty,amt,del_qty,bill_amt=0,0,0,0
 
 for r in res:
   qty += flt(r[col_idx['Quantity']])
   amt += flt(r[col_idx['Amount*']])
   del_qty += flt(r[col_idx['Delivered Qty']])
-  bil_qty += flt(r[col_idx['Billed Qty']])
+  bill_amt += flt(r[col_idx['Billed Amt']])
   out.append(r)
 
 
@@ -31,5 +31,5 @@
 l_row[col_idx['Quantity']] = qty
 l_row[col_idx['Amount*']] = amt
 l_row[col_idx['Delivered Qty']] = del_qty
-l_row[col_idx['Billed Qty']] = bil_qty
-out.append(l_row)
\ No newline at end of file
+l_row[col_idx['Billed Amt']] = bill_amt
+out.append(l_row)
diff --git a/erpnext/selling/search_criteria/itemwise_sales_details/itemwise_sales_details.txt b/erpnext/selling/search_criteria/itemwise_sales_details/itemwise_sales_details.txt
index 3566ea9..fbc4642 100644
--- a/erpnext/selling/search_criteria/itemwise_sales_details/itemwise_sales_details.txt
+++ b/erpnext/selling/search_criteria/itemwise_sales_details/itemwise_sales_details.txt
@@ -3,20 +3,20 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-04-03 12:49:51',
+		'creation': '2012-04-23 12:46:00',
 		'docstatus': 0,
-		'modified': '2012-04-03 12:49:51',
+		'modified': '2012-05-03 18:18:31',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'columns': u'Sales Order\x01ID,Sales Order\x01Customer,Sales Order Item\x01Item Code,Sales Order Item\x01Item Name,Sales Order Item\x01Quantity,Sales Order Item\x01Basic Rate*,Sales Order Item\x01Amount*,Sales Order Item\x01Delivered Qty,Sales Order Item\x01Billed Qty,Sales Order\x01Company',
+		'columns': u'Sales Order\x01ID,Sales Order\x01Customer,Sales Order Item\x01Item Code,Sales Order Item\x01Item Name,Sales Order Item\x01Quantity,Sales Order Item\x01Basic Rate*,Sales Order Item\x01Amount*,Sales Order Item\x01Delivered Qty,Sales Order Item\x01Billed Amt',
 		'criteria_name': u'Itemwise Sales Details',
 		'doc_type': u'Sales Order Item',
 		'doctype': 'Search Criteria',
-		'filters': u"{'Sales Order\x01Submitted':1,'Sales Order\x01Status':'','Sales Order\x01Fiscal Year':''}",
+		'filters': u'{"Sales Order\\u0001Submitted":1,"Sales Order\\u0001Fiscal Year":[""],"Sales Order\\u0001Status":[""]}',
 		'module': u'Selling',
 		'name': '__common__',
 		'page_len': 50,
diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.txt b/erpnext/stock/doctype/stock_entry/stock_entry.txt
index bac0f74..b95c9ea 100644
--- a/erpnext/stock/doctype/stock_entry/stock_entry.txt
+++ b/erpnext/stock/doctype/stock_entry/stock_entry.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-04-16 15:08:16',
+		'creation': '2012-05-03 11:12:49',
 		'docstatus': 0,
-		'modified': '2012-05-01 15:52:31',
+		'modified': '2012-05-03 18:08:43',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
@@ -277,7 +277,7 @@
 		'fieldtype': u'Link',
 		'hidden': 1,
 		'label': u'Sales Invoice No',
-		'options': u'Receivable Voucher',
+		'options': u'Sales Invoice',
 		'permlevel': 0,
 		'print_hide': 1
 	},
@@ -333,7 +333,7 @@
 		'fieldname': u'bom_no',
 		'fieldtype': u'Link',
 		'label': u'BOM No',
-		'options': u'Bill Of Materials',
+		'options': u'BOM',
 		'permlevel': 0
 	},
 
diff --git a/js/all-app.js b/js/all-app.js
index 0f36858..f2b9a15 100644
--- a/js/all-app.js
+++ b/js/all-app.js
@@ -839,7 +839,7 @@
 this.txt.field_object=this;}}
 function DataField(){}DataField.prototype=new Field();DataField.prototype.make_input=function(){var me=this;this.input=$a_input(this.input_area,this.df.fieldtype=='Password'?'password':'text');this.get_value=function(){var v=this.input.value;if(this.validate)
 v=this.validate(v);return v;}
-this.input.name=this.df.fieldname;$(this.input).change(function(){me.set_value(me.get_value&&me.get_value()||$(this.input).val());});this.set_value=function(val){if(!me.last_value)me.last_value='';if(me.validate){val=me.validate(val);me.input.value=val;}
+this.input.name=this.df.fieldname;$(this.input).change(function(){me.set_value(me.get_value&&me.get_value()||$(this.input).val());});this.set_value=function(val){if(!me.last_value)me.last_value='';if(me.validate){val=me.validate(val);me.input.value=val==undefined?'':val;}
 me.set(val);if(me.format_input)
 me.format_input();if(in_list(['Currency','Float','Int'],me.df.fieldtype)){if(flt(me.last_value)==flt(val)){me.last_value=val;return;}}
 me.last_value=val;me.run_trigger();}
@@ -1530,7 +1530,7 @@
 this.txt.field_object=this;}}
 function DataField(){}DataField.prototype=new Field();DataField.prototype.make_input=function(){var me=this;this.input=$a_input(this.input_area,this.df.fieldtype=='Password'?'password':'text');this.get_value=function(){var v=this.input.value;if(this.validate)
 v=this.validate(v);return v;}
-this.input.name=this.df.fieldname;$(this.input).change(function(){me.set_value(me.get_value&&me.get_value()||$(this.input).val());});this.set_value=function(val){if(!me.last_value)me.last_value='';if(me.validate){val=me.validate(val);me.input.value=val;}
+this.input.name=this.df.fieldname;$(this.input).change(function(){me.set_value(me.get_value&&me.get_value()||$(this.input).val());});this.set_value=function(val){if(!me.last_value)me.last_value='';if(me.validate){val=me.validate(val);me.input.value=val==undefined?'':val;}
 me.set(val);if(me.format_input)
 me.format_input();if(in_list(['Currency','Float','Int'],me.df.fieldtype)){if(flt(me.last_value)==flt(val)){me.last_value=val;return;}}
 me.last_value=val;me.run_trigger();}
