diff --git a/erpnext/config/stock.py b/erpnext/config/stock.py
index afee0f5..bfb4b7f 100644
--- a/erpnext/config/stock.py
+++ b/erpnext/config/stock.py
@@ -74,8 +74,8 @@
 				},
 				{
 					"type": "doctype",
-					"name": "Landed Cost Wizard",
-					"description": _("Distribute transport overhead across items."),
+					"name": "Landed Cost Voucher",
+					"description": _("Update additional costs to calculate landed cost of items"),
 				},
 				{
 					"type": "doctype",
diff --git a/erpnext/stock/doctype/landed_cost_voucher/landed_cost_voucher.json b/erpnext/stock/doctype/landed_cost_voucher/landed_cost_voucher.json
index f064198..682a16b 100644
--- a/erpnext/stock/doctype/landed_cost_voucher/landed_cost_voucher.json
+++ b/erpnext/stock/doctype/landed_cost_voucher/landed_cost_voucher.json
@@ -71,8 +71,9 @@
    "read_only": 1
   }
  ], 
+ "icon": "icon-usd", 
  "is_submittable": 1, 
- "modified": "2014-08-08 13:11:55.764550", 
+ "modified": "2014-09-01 12:05:46.834513", 
  "modified_by": "Administrator", 
  "module": "Stock", 
  "name": "Landed Cost Voucher", 
diff --git a/erpnext/stock/doctype/landed_cost_voucher/test_records.json b/erpnext/stock/doctype/landed_cost_voucher/test_records.json
new file mode 100644
index 0000000..4fc0017
--- /dev/null
+++ b/erpnext/stock/doctype/landed_cost_voucher/test_records.json
@@ -0,0 +1,6 @@
+[
+	{
+		"doctype": "Landed Cost Voucher",
+		"name": "_Test Landed Cost Voucher 1"
+	}
+]
diff --git a/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py b/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py
index 8b32211..40a980d 100644
--- a/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py
+++ b/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py
@@ -74,7 +74,7 @@
 				self.validation_messages.append(_get_msg(row_num, _("Warehouse not found in the system")))
 
 			# if both not specified
-			if row[2] == "" and row[3] == "":
+			if row[2] in ["", None] and row[3] in ["", None]:
 				self.validation_messages.append(_get_msg(row_num,
 					_("Please specify either Quantity or Valuation Rate or both")))
 
@@ -149,13 +149,13 @@
 			})
 
 			# check valuation rate mandatory
-			if row.qty != "" and not row.valuation_rate and \
+			if row.qty not in ["", None] and not row.valuation_rate and \
 					flt(previous_sle.get("qty_after_transaction")) <= 0:
 				frappe.throw(_("Valuation Rate required for Item {0}").format(row.item_code))
 
 			change_in_qty = row.qty not in ["", None] and \
 				(flt(row.qty) - flt(previous_sle.get("qty_after_transaction")))
-				
+
 			change_in_rate = row.valuation_rate not in ["", None] and \
 				(flt(row.valuation_rate) - flt(previous_sle.get("valuation_rate")))
 
@@ -171,7 +171,7 @@
 			if previous_valuation_rate == 0:
 				return flt(valuation_rate)
 			else:
-				if valuation_rate == "":
+				if valuation_rate in ["", None]:
 					valuation_rate = previous_valuation_rate
 				return (qty * valuation_rate - previous_qty * previous_valuation_rate) \
 					/ flt(qty - previous_qty)
@@ -179,8 +179,7 @@
 		if change_in_qty:
 			# if change in qty, irrespective of change in rate
 			incoming_rate = _get_incoming_rate(flt(row.qty), flt(row.valuation_rate),
-				flt(previous_sle.get("qty_after_transaction")),
-				flt(previous_sle.get("valuation_rate")))
+				flt(previous_sle.get("qty_after_transaction")), flt(previous_sle.get("valuation_rate")))
 
 			row["voucher_detail_no"] = "Row: " + cstr(row.row_num) + "/Actual Entry"
 			self.insert_entries({"actual_qty": change_in_qty, "incoming_rate": incoming_rate}, row)
@@ -211,7 +210,7 @@
 		def _insert_entries():
 			if previous_stock_queue != [[row.qty, row.valuation_rate]]:
 				# make entry as per attachment
-				if row.qty:
+				if flt(row.qty):
 					row["voucher_detail_no"] = "Row: " + cstr(row.row_num) + "/Actual Entry"
 					self.insert_entries({"actual_qty": row.qty,
 						"incoming_rate": flt(row.valuation_rate)}, row)
@@ -225,7 +224,7 @@
 
 
 		if change_in_qty:
-			if row.valuation_rate == "":
+			if row.valuation_rate in ["", None]:
 				# dont want change in valuation
 				if previous_stock_qty > 0:
 					# set valuation_rate as previous valuation_rate
diff --git a/erpnext/utilities/repost_stock.py b/erpnext/utilities/repost_stock.py
index 1e1d5d9..4c14548 100644
--- a/erpnext/utilities/repost_stock.py
+++ b/erpnext/utilities/repost_stock.py
@@ -22,7 +22,7 @@
 		(select item_code, warehouse from tabBin
 		union
 		select item_code, warehouse from `tabStock Ledger Entry`) a"""):
-			repost_stock(d[0], d[1], allow_negative_stock)
+			repost_stock(d[0], d[1])
 
 	if allow_negative_stock:
 		frappe.db.set_default("allow_negative_stock",
@@ -33,7 +33,7 @@
 	repost_actual_qty(item_code, warehouse)
 
 	if item_code and warehouse:
-		update_bin(item_code, warehouse, {
+		update_bin_qty(item_code, warehouse, {
 			"reserved_qty": get_reserved_qty(item_code, warehouse),
 			"indented_qty": get_indented_qty(item_code, warehouse),
 			"ordered_qty": get_ordered_qty(item_code, warehouse),
@@ -116,7 +116,7 @@
 	return flt(planned_qty[0][0]) if planned_qty else 0
 
 
-def update_bin(item_code, warehouse, qty_dict=None):
+def update_bin_qty(item_code, warehouse, qty_dict=None):
 	from erpnext.stock.utils import get_bin
 	bin = get_bin(item_code, warehouse)
 	mismatch = False
@@ -201,11 +201,11 @@
 				last_sle = sr.get_last_sle()
 				if flt(last_sle.actual_qty) > 0:
 					sr.warehouse = last_sle.warehouse
-					
+
 				sr.via_stock_ledger = True
 				sr.save()
 			except:
 				pass
-		
+
 		frappe.db.sql("""update `tabSerial No` set warehouse='' where status in ('Delivered', 'Purchase Returned')""")
-		
+
