diff --git a/erpnext/hr/doctype/salary_slip/salary_slip.js b/erpnext/hr/doctype/salary_slip/salary_slip.js
index fb4f8f8..c0e8193 100644
--- a/erpnext/hr/doctype/salary_slip/salary_slip.js
+++ b/erpnext/hr/doctype/salary_slip/salary_slip.js
@@ -51,8 +51,10 @@
 	calculate_net_pay(doc, dt, dn);
 }
 
-cur_frm.cscript.e_depends_on_lwp = cur_frm.cscript.e_modified_amount;
-
+cur_frm.cscript.e_depends_on_lwp = function(doc,dt,dn){
+	calculate_earning_total(doc, dt, dn, true);
+	calculate_net_pay(doc, dt, dn);
+}
 // Trigger on earning modified amount and depends on lwp
 // ------------------------------------------------------------------------
 cur_frm.cscript.d_modified_amount = function(doc,dt,dn){
@@ -60,17 +62,24 @@
 	calculate_net_pay(doc, dt, dn);
 }
 
-cur_frm.cscript.d_depends_on_lwp = cur_frm.cscript.d_modified_amount;
+cur_frm.cscript.d_depends_on_lwp = function(doc, dt, dn) {
+	calculate_ded_total(doc, dt, dn, true);
+	calculate_net_pay(doc, dt, dn);
+};
 
 // Calculate earning total
 // ------------------------------------------------------------------------
-var calculate_earning_total = function(doc, dt, dn) {
+var calculate_earning_total = function(doc, dt, dn, reset_amount) {
 	var tbl = doc.earnings || [];
 
 	var total_earn = 0;
 	for(var i = 0; i < tbl.length; i++){
 		if(cint(tbl[i].e_depends_on_lwp) == 1) {
-			tbl[i].e_modified_amount = Math.round(tbl[i].e_amount)*(flt(doc.payment_days)/cint(doc.total_days_in_month)*100)/100;			
+			tbl[i].e_modified_amount =  Math.round(tbl[i].e_amount)*(flt(doc.payment_days) / 
+				cint(doc.total_days_in_month)*100)/100;			
+			refresh_field('e_modified_amount', tbl[i].name, 'earnings');
+		} else if(reset_amount) {
+			tbl[i].e_modified_amount = tbl[i].e_amount;
 			refresh_field('e_modified_amount', tbl[i].name, 'earnings');
 		}
 		total_earn += flt(tbl[i].e_modified_amount);
@@ -81,7 +90,7 @@
 
 // Calculate deduction total
 // ------------------------------------------------------------------------
-var calculate_ded_total = function(doc, dt, dn) {
+var calculate_ded_total = function(doc, dt, dn, reset_amount) {
 	var tbl = doc.deductions || [];
 
 	var total_ded = 0;
@@ -89,6 +98,9 @@
 		if(cint(tbl[i].d_depends_on_lwp) == 1) {
 			tbl[i].d_modified_amount = Math.round(tbl[i].d_amount)*(flt(doc.payment_days)/cint(doc.total_days_in_month)*100)/100;
 			refresh_field('d_modified_amount', tbl[i].name, 'deductions');
+		} else if(reset_amount) {
+			tbl[i].d_modified_amount = tbl[i].d_amount;
+			refresh_field('d_modified_amount', tbl[i].name, 'earnings');
 		}
 		total_ded += flt(tbl[i].d_modified_amount);
 	}
diff --git a/erpnext/hr/doctype/salary_slip_deduction/salary_slip_deduction.json b/erpnext/hr/doctype/salary_slip_deduction/salary_slip_deduction.json
index 1833129..4b4e59c 100644
--- a/erpnext/hr/doctype/salary_slip_deduction/salary_slip_deduction.json
+++ b/erpnext/hr/doctype/salary_slip_deduction/salary_slip_deduction.json
@@ -18,7 +18,7 @@
   {
    "fieldname": "d_amount", 
    "fieldtype": "Currency", 
-   "in_list_view": 1, 
+   "in_list_view": 0, 
    "label": "Default Amount", 
    "oldfieldname": "d_amount", 
    "oldfieldtype": "Currency", 
@@ -28,25 +28,25 @@
    "read_only": 1
   }, 
   {
+   "fieldname": "d_depends_on_lwp", 
+   "fieldtype": "Check", 
+   "in_list_view": 0, 
+   "label": "Depends on LWP", 
+   "permlevel": 0, 
+   "print_hide": 1
+  }, 
+  {
    "fieldname": "d_modified_amount", 
    "fieldtype": "Currency", 
    "in_list_view": 1, 
    "label": "Amount", 
    "options": "Company:company:default_currency", 
    "permlevel": 0
-  }, 
-  {
-   "fieldname": "d_depends_on_lwp", 
-   "fieldtype": "Check", 
-   "in_list_view": 1, 
-   "label": "Depends on LWP", 
-   "permlevel": 0, 
-   "print_hide": 1
   }
  ], 
  "idx": 1, 
  "istable": 1, 
- "modified": "2014-07-21 07:38:36.059879", 
+ "modified": "2015-03-03 12:41:04.505378", 
  "modified_by": "Administrator", 
  "module": "HR", 
  "name": "Salary Slip Deduction", 
diff --git a/erpnext/hr/doctype/salary_slip_earning/salary_slip_earning.json b/erpnext/hr/doctype/salary_slip_earning/salary_slip_earning.json
index b3dfa2b..4359905 100644
--- a/erpnext/hr/doctype/salary_slip_earning/salary_slip_earning.json
+++ b/erpnext/hr/doctype/salary_slip_earning/salary_slip_earning.json
@@ -12,13 +12,13 @@
    "oldfieldtype": "Data", 
    "options": "Earning Type", 
    "permlevel": 0, 
-   "print_width": "200px", 
-   "width": "200px"
+   "print_width": "", 
+   "width": "80px"
   }, 
   {
    "fieldname": "e_amount", 
    "fieldtype": "Currency", 
-   "in_list_view": 1, 
+   "in_list_view": 0, 
    "label": "Default Amount", 
    "oldfieldname": "e_amount", 
    "oldfieldtype": "Currency", 
@@ -28,25 +28,25 @@
    "read_only": 1
   }, 
   {
+   "fieldname": "e_depends_on_lwp", 
+   "fieldtype": "Check", 
+   "in_list_view": 0, 
+   "label": "Depends on LWP", 
+   "permlevel": 0, 
+   "print_hide": 1
+  }, 
+  {
    "fieldname": "e_modified_amount", 
    "fieldtype": "Currency", 
    "in_list_view": 1, 
    "label": "Amount", 
    "options": "Company:company:default_currency", 
    "permlevel": 0
-  }, 
-  {
-   "fieldname": "e_depends_on_lwp", 
-   "fieldtype": "Check", 
-   "in_list_view": 1, 
-   "label": "Depends on LWP", 
-   "permlevel": 0, 
-   "print_hide": 1
   }
  ], 
  "idx": 1, 
  "istable": 1, 
- "modified": "2014-07-21 07:39:01.262050", 
+ "modified": "2015-03-03 12:42:49.087748", 
  "modified_by": "Administrator", 
  "module": "HR", 
  "name": "Salary Slip Earning", 
