diff --git a/erpnext/controllers/stock_controller.py b/erpnext/controllers/stock_controller.py
index 2e6f454..906e0e2 100644
--- a/erpnext/controllers/stock_controller.py
+++ b/erpnext/controllers/stock_controller.py
@@ -9,6 +9,7 @@
 from erpnext.accounts.utils import get_fiscal_year
 from erpnext.accounts.general_ledger import make_gl_entries, delete_gl_entries, process_gl_map
 from erpnext.controllers.accounts_controller import AccountsController
+from erpnext.stock.stock_ledger import get_valuation_rate
 
 class StockController(AccountsController):
 	def validate(self):
@@ -51,7 +52,8 @@
 						# from warehouse account
 						
 						self.check_expense_account(item_row)
-						
+						self.update_stock_ledger_entries(sle)
+
 						if not sle.stock_value_difference:
 							self.validate_negative_stock(sle)
 
@@ -84,7 +86,16 @@
 				"\n".join(warehouse_with_no_account))
 
 		return process_gl_map(gl_list)
-		
+
+	def update_stock_ledger_entries(self, sle):
+		if not sle.stock_value_difference:
+			sle.valuation_rate = get_valuation_rate(sle.item_code, sle.warehouse, 
+				sle.voucher_type, sle.voucher_no)
+			sle.stock_value = flt(sle.qty_after_transaction) * flt(sle.valuation_rate)
+			sle.stock_value_difference = sle.stock_value
+			sle.doctype="Stock Ledger Entry"
+			frappe.get_doc(sle).db_update()
+
 	def validate_negative_stock(self, sle):
 		if sle.qty_after_transaction < 0 and sle.actual_qty < 0:
 			frappe.throw(_("Valuation rate not found for the Item {0}, which is required to do accounting entries (for booking expenses). Please create an incoming stock transaction or mention valuation rate in Item record, and then try submiting {1} {2}")
