diff --git a/erpnext/patches.txt b/erpnext/patches.txt
index 7fda960..2773d69 100644
--- a/erpnext/patches.txt
+++ b/erpnext/patches.txt
@@ -91,3 +91,4 @@
 execute:frappe.delete_doc("DocType", "Contact Control")
 erpnext.patches.v4_2.recalculate_bom_costs
 erpnext.patches.v4_2.discount_amount
+erpnext.patches.v4_2.update_landed_cost_voucher
diff --git a/erpnext/patches/v4_2/update_landed_cost_voucher.py b/erpnext/patches/v4_2/update_landed_cost_voucher.py
new file mode 100644
index 0000000..6563b7b
--- /dev/null
+++ b/erpnext/patches/v4_2/update_landed_cost_voucher.py
@@ -0,0 +1,10 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
+# License: GNU General Public License v3. See license.txt
+
+from __future__ import unicode_literals
+import frappe
+
+def execute():
+	frappe.reload_doc("stock", "doctype", "landed_cost_voucher")
+	frappe.db.sql("""update `tabLanded Cost Voucher` set distribute_charges_based_on = 'Amount'
+		where docstatus=1""")
diff --git a/erpnext/stock/doctype/landed_cost_taxes_and_charges/landed_cost_taxes_and_charges.json b/erpnext/stock/doctype/landed_cost_taxes_and_charges/landed_cost_taxes_and_charges.json
index f183b33..9ea9150 100644
--- a/erpnext/stock/doctype/landed_cost_taxes_and_charges/landed_cost_taxes_and_charges.json
+++ b/erpnext/stock/doctype/landed_cost_taxes_and_charges/landed_cost_taxes_and_charges.json
@@ -19,17 +19,6 @@
    "width": "50%"
   }, 
   {
-   "fieldname": "account", 
-   "fieldtype": "Link", 
-   "in_list_view": 1, 
-   "label": "Account", 
-   "options": "Account", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 0, 
-   "reqd": 1
-  }, 
-  {
    "fieldname": "amount", 
    "fieldtype": "Currency", 
    "in_list_view": 1, 
@@ -40,7 +29,7 @@
   }
  ], 
  "istable": 1, 
- "modified": "2014-08-08 13:12:02.594698", 
+ "modified": "2015-01-21 11:51:33.964438", 
  "modified_by": "Administrator", 
  "module": "Stock", 
  "name": "Landed Cost Taxes and Charges", 
diff --git a/erpnext/stock/doctype/landed_cost_voucher/landed_cost_voucher.js b/erpnext/stock/doctype/landed_cost_voucher/landed_cost_voucher.js
index 042011a..ea469f0 100644
--- a/erpnext/stock/doctype/landed_cost_voucher/landed_cost_voucher.js
+++ b/erpnext/stock/doctype/landed_cost_voucher/landed_cost_voucher.js
@@ -5,10 +5,10 @@
 frappe.provide("erpnext.stock");
 frappe.require("assets/erpnext/js/controllers/stock_controller.js");
 
-erpnext.stock.LandedCostVoucher = erpnext.stock.StockController.extend({		
+erpnext.stock.LandedCostVoucher = erpnext.stock.StockController.extend({
 	setup: function() {
 		var me = this;
-		this.frm.fields_dict.landed_cost_purchase_receipts.grid.get_field('purchase_receipt').get_query = 
+		this.frm.fields_dict.landed_cost_purchase_receipts.grid.get_field('purchase_receipt').get_query =
 			function() {
 				if(!me.frm.doc.company) msgprint(__("Please enter company first"));
 				return {
@@ -18,53 +18,44 @@
 					]
 				}
 		};
-	
-		this.frm.fields_dict.landed_cost_taxes_and_charges.grid.get_field('account').get_query = function() {
-				if(!me.frm.doc.company) msgprint(__("Please enter company first"));
-				return {
-					filters:[
-						['Account', 'group_or_ledger', '=', 'Ledger'],
-						['Account', 'account_type', 'in', ['Tax', 'Chargeable', 'Expense Account']],
-						['Account', 'company', '=', me.frm.doc.company]
-					]
-				}
-		};
-		
+
 		this.frm.add_fetch("purchase_receipt", "supplier", "supplier");
 		this.frm.add_fetch("purchase_receipt", "posting_date", "posting_date");
 		this.frm.add_fetch("purchase_receipt", "grand_total", "grand_total");
-		
-	}, 
-	
+
+	},
+
 	refresh: function() {
-		var help_content = ['<table class="table table-bordered" style="background-color: #f9f9f9;">',
-			'<tr><td>',
-				'<h4><i class="icon-hand-right"></i> ',
-					__('Notes'),
-				':</h4>',
-				'<ul>',
-					'<li>',
-						__("Charges will be distributed proportionately based on item amount"),
-					'</li>',
-					'<li>',
-						__("Remove item if charges is not applicable to that item"),
-					'</li>',
-					'<li>',
-						__("Charges are updated in Purchase Receipt against each item"),
-					'</li>',
-					'<li>',
-						__("Item valuation rate is recalculated considering landed cost voucher amount"),
-					'</li>',
-					'<li>',
-						__("Stock Ledger Entries and GL Entries are reposted for the selected Purchase Receipts"),
-					'</li>',
-				'</ul>',
-			'</td></tr>',
-		'</table>'].join("\n");
+		var help_content = [
+			'<br><br>',
+			'<table class="table table-bordered" style="background-color: #f9f9f9;">',
+				'<tr><td>',
+					'<h4><i class="icon-hand-right"></i> ',
+						__('Notes'),
+					':</h4>',
+					'<ul>',
+						'<li>',
+							__("Charges will be distributed proportionately based on item qty or amount, as per your selection"),
+						'</li>',
+						'<li>',
+							__("Remove item if charges is not applicable to that item"),
+						'</li>',
+						'<li>',
+							__("Charges are updated in Purchase Receipt against each item"),
+						'</li>',
+						'<li>',
+							__("Item valuation rate is recalculated considering landed cost voucher amount"),
+						'</li>',
+						'<li>',
+							__("Stock Ledger Entries and GL Entries are reposted for the selected Purchase Receipts"),
+						'</li>',
+					'</ul>',
+				'</td></tr>',
+			'</table>'].join("\n");
 
 		set_field_options("landed_cost_help", help_content);
 	},
-	
+
 	get_items_from_purchase_receipts: function() {
 		var me = this;
 		if(!this.frm.doc.landed_cost_purchase_receipts.length) {
@@ -75,13 +66,13 @@
 				method: "get_items_from_purchase_receipts"
 			});
 		}
-	}, 
-	
+	},
+
 	amount: function() {
 		this.set_total_taxes_and_charges();
 		this.set_applicable_charges_for_item();
 	},
-	
+
 	set_total_taxes_and_charges: function() {
 		total_taxes_and_charges = 0.0;
 		$.each(this.frm.doc.landed_cost_taxes_and_charges, function(i, d) {
@@ -89,7 +80,7 @@
 		});
 		cur_frm.set_value("total_taxes_and_charges", total_taxes_and_charges);
 	},
-	
+
 	set_applicable_charges_for_item: function() {
 		var me = this;
 		if(this.frm.doc.landed_cost_taxes_and_charges.length) {
@@ -97,14 +88,14 @@
 			$.each(this.frm.doc.landed_cost_items, function(i, d) {
 				total_item_cost += flt(d.amount)
 			});
-			
+
 			$.each(this.frm.doc.landed_cost_items, function(i, item) {
 				item.applicable_charges = flt(item.amount) *  flt(me.frm.doc.total_taxes_and_charges) / flt(total_item_cost)
 			});
 			refresh_field("landed_cost_items");
 		}
 	}
-	
+
 });
 
-cur_frm.script_manager.make(erpnext.stock.LandedCostVoucher);
\ No newline at end of file
+cur_frm.script_manager.make(erpnext.stock.LandedCostVoucher);
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 682a16b..3425d9d 100644
--- a/erpnext/stock/doctype/landed_cost_voucher/landed_cost_voucher.json
+++ b/erpnext/stock/doctype/landed_cost_voucher/landed_cost_voucher.json
@@ -45,6 +45,13 @@
    "permlevel": 0
   }, 
   {
+   "fieldname": "sec_break1", 
+   "fieldtype": "Section Break", 
+   "options": "Simple", 
+   "permlevel": 0, 
+   "precision": ""
+  }, 
+  {
    "fieldname": "total_taxes_and_charges", 
    "fieldtype": "Currency", 
    "label": "Total Taxes and Charges", 
@@ -54,13 +61,6 @@
    "reqd": 1
   }, 
   {
-   "fieldname": "landed_cost_help", 
-   "fieldtype": "HTML", 
-   "label": "Landed Cost Help", 
-   "options": "", 
-   "permlevel": 0
-  }, 
-  {
    "fieldname": "amended_from", 
    "fieldtype": "Link", 
    "label": "Amended From", 
@@ -69,11 +69,40 @@
    "permlevel": 0, 
    "print_hide": 1, 
    "read_only": 1
+  }, 
+  {
+   "fieldname": "col_break1", 
+   "fieldtype": "Column Break", 
+   "permlevel": 0, 
+   "precision": ""
+  }, 
+  {
+   "default": "Amount", 
+   "fieldname": "distribute_charges_based_on", 
+   "fieldtype": "Select", 
+   "label": "Distribute Charges Based On", 
+   "options": "\nQty\nAmount", 
+   "permlevel": 0, 
+   "precision": "", 
+   "reqd": 1
+  }, 
+  {
+   "fieldname": "sec_break2", 
+   "fieldtype": "Section Break", 
+   "permlevel": 0, 
+   "precision": ""
+  }, 
+  {
+   "fieldname": "landed_cost_help", 
+   "fieldtype": "HTML", 
+   "label": "Landed Cost Help", 
+   "options": "", 
+   "permlevel": 0
   }
  ], 
  "icon": "icon-usd", 
  "is_submittable": 1, 
- "modified": "2014-09-01 12:05:46.834513", 
+ "modified": "2015-01-21 11:56:37.698326", 
  "modified_by": "Administrator", 
  "module": "Stock", 
  "name": "Landed Cost Voucher", 
diff --git a/erpnext/stock/doctype/landed_cost_voucher/landed_cost_voucher.py b/erpnext/stock/doctype/landed_cost_voucher/landed_cost_voucher.py
index 3046c5e..7bafcf6 100644
--- a/erpnext/stock/doctype/landed_cost_voucher/landed_cost_voucher.py
+++ b/erpnext/stock/doctype/landed_cost_voucher/landed_cost_voucher.py
@@ -7,9 +7,6 @@
 from frappe.utils import flt
 from frappe.model.document import Document
 
-from erpnext.stock.utils import get_valuation_method
-from erpnext.stock.stock_ledger import get_previous_sle
-
 class LandedCostVoucher(Document):
 	def get_items_from_purchase_receipts(self):
 		self.set("landed_cost_items", [])
@@ -69,10 +66,11 @@
 		self.total_taxes_and_charges = sum([flt(d.amount) for d in self.get("landed_cost_taxes_and_charges")])
 
 	def set_applicable_charges_for_item(self):
-		total_item_cost = sum([flt(d.amount) for d in self.get("landed_cost_items")])
+		based_on = self.distribute_charges_based_on.lower()
+		total = sum([flt(d.get(based_on)) for d in self.get("landed_cost_items")])
 
 		for item in self.get("landed_cost_items"):
-			item.applicable_charges = flt(item.amount) *  flt(self.total_taxes_and_charges) / flt(total_item_cost)
+			item.applicable_charges = flt(item.get(based_on)) *  flt(self.total_taxes_and_charges) / flt(total)
 
 	def on_submit(self):
 		self.update_landed_cost()
@@ -92,13 +90,16 @@
 			pr.update_valuation_rate("purchase_receipt_details")
 
 			# save will update landed_cost_voucher_amount and voucher_amount in PR,
-			# as those fields are ellowed to edit after submit
+			# as those fields are allowed to edit after submit
 			pr.save()
 
-			# update stock & gl entries for cancelled state of PR
-			pr.docstatus = 2
-			pr.update_stock_ledger()
-			pr.make_gl_entries_on_cancel()
+			# delete stock ledger entries & gl entries for cancelled state of PR
+
+			frappe.db.sql("""delete from `tabStock Ledger Entry`
+				where voucher_type='Purchase Receipt' and voucher_no=%s""", pr.name)
+
+			frappe.db.sql("""delete from `tabGL Entry`
+				where voucher_type='Purchase Receipt' and voucher_no=%s""", pr.name)
 
 			# update stock & gl entries for submit state of PR
 			pr.docstatus = 1
