diff --git a/stock/doctype/stock_ledger_entry/stock_ledger_entry.py b/stock/doctype/stock_ledger_entry/stock_ledger_entry.py
index f059451..13aaee6 100644
--- a/stock/doctype/stock_ledger_entry/stock_ledger_entry.py
+++ b/stock/doctype/stock_ledger_entry/stock_ledger_entry.py
@@ -1,11 +1,13 @@
+
 # 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 webnotes
 from webnotes import msgprint
-from webnotes.utils import flt, getdate
+from webnotes.utils import flt, getdate, add_date
 from webnotes.model.controller import DocListController
+from datetime import date
 
 class DocType(DocListController):
 	def __init__(self, doc, doclist=[]):
@@ -19,30 +21,30 @@
 		validate_warehouse_user(self.doc.warehouse)
 		validate_warehouse_company(self.doc.warehouse, self.doc.company)
 		self.scrub_posting_time()
-		
+
 		from accounts.utils import validate_fiscal_year
 		validate_fiscal_year(self.doc.posting_date, self.doc.fiscal_year, self.meta.get_label("posting_date"))
-		
+
 	def on_submit(self):
 		self.check_stock_frozen_date()
 		self.actual_amt_check()
-		
+
 		from stock.doctype.serial_no.serial_no import process_serial_no
 		process_serial_no(self.doc)
-		
+
 	#check for item quantity available in stock
 	def actual_amt_check(self):
 		if self.doc.batch_no:
-			batch_bal_after_transaction = flt(webnotes.conn.sql("""select sum(actual_qty) 
-				from `tabStock Ledger Entry` 
-				where warehouse=%s and item_code=%s and batch_no=%s""", 
+			batch_bal_after_transaction = flt(webnotes.conn.sql("""select sum(actual_qty)
+				from `tabStock Ledger Entry`
+				where warehouse=%s and item_code=%s and batch_no=%s""",
 				(self.doc.warehouse, self.doc.item_code, self.doc.batch_no))[0][0])
-			
+
 			if batch_bal_after_transaction < 0:
 				self.doc.fields.update({
 					'batch_bal': batch_bal_after_transaction - self.doc.actual_qty
 				})
-				
+
 				webnotes.throw("""Not enough quantity (requested: %(actual_qty)s, \
 					current: %(batch_bal)s in Batch <b>%(batch_no)s</b> for Item \
 					<b>%(item_code)s</b> at Warehouse <b>%(warehouse)s</b> \
@@ -60,27 +62,27 @@
 					msgprint("Warehouse: '%s' does not exist in the system. Please check." % self.doc.fields.get(k), raise_exception = 1)
 
 	def validate_item(self):
-		item_det = webnotes.conn.sql("""select name, has_batch_no, docstatus, 
-			is_stock_item, has_serial_no, serial_no_series 
-			from tabItem where name=%s""", 
+		item_det = webnotes.conn.sql("""select name, has_batch_no, docstatus,
+			is_stock_item, has_serial_no, serial_no_series
+			from tabItem where name=%s""",
 			self.doc.item_code, as_dict=True)[0]
 
 		if item_det.is_stock_item != 'Yes':
 			webnotes.throw("""Item: "%s" is not a Stock Item.""" % self.doc.item_code)
-			
+
 		# check if batch number is required
 		if item_det.has_batch_no =='Yes' and self.doc.voucher_type != 'Stock Reconciliation':
 			if not self.doc.batch_no:
 				webnotes.throw("Batch number is mandatory for Item '%s'" % self.doc.item_code)
-		
+
 			# check if batch belongs to item
-			if not webnotes.conn.sql("""select name from `tabBatch` 
+			if not webnotes.conn.sql("""select name from `tabBatch`
 				where item='%s' and name ='%s' and docstatus != 2""" % (self.doc.item_code, self.doc.batch_no)):
 				webnotes.throw("'%s' is not a valid Batch Number for Item '%s'" % (self.doc.batch_no, self.doc.item_code))
-				
+
 		if not self.doc.stock_uom:
 			self.doc.stock_uom = item_det.stock_uom
-					
+
 	def check_stock_frozen_date(self):
 		stock_frozen_upto = webnotes.conn.get_value('Stock Settings', None, 'stock_frozen_upto') or ''
 		if stock_frozen_upto:
@@ -88,13 +90,21 @@
 			if getdate(self.doc.posting_date) <= getdate(stock_frozen_upto) and not stock_auth_role in webnotes.user.get_roles():
 				msgprint("You are not authorized to do / modify back dated stock entries before %s" % getdate(stock_frozen_upto).strftime('%d-%m-%Y'), raise_exception=1)
 
+		stock_frozen_upto_days = webnotes.conn.get_value('Stock Settings', None, 'stock_frozen_upto_days') or 0
+		if stock_frozen_upto_days:
+			stock_auth_role = webnotes.conn.get_value('Stock Settings', None,'stock_auth_role')
+			older_than_x_days_ago = (add_date(getdate(self.doc.posting_date), stock_frozen_upto_days) <= date.today())
+			if older_than_x_days_ago and not stock_auth_role in webnotes.user.get_roles():
+				msgprint("You are not authorized to do / modify back dated stock entries older than %d days ago" %stock_frozen_upto_days, raise_exception=1)
+
+
 	def scrub_posting_time(self):
 		if not self.doc.posting_time or self.doc.posting_time == '00:0':
 			self.doc.posting_time = '00:00'
 
 def on_doctype_update():
-	if not webnotes.conn.sql("""show index from `tabStock Ledger Entry` 
+	if not webnotes.conn.sql("""show index from `tabStock Ledger Entry`
 		where Key_name="posting_sort_index" """):
 		webnotes.conn.commit()
-		webnotes.conn.sql("""alter table `tabStock Ledger Entry` 
+		webnotes.conn.sql("""alter table `tabStock Ledger Entry`
 			add index posting_sort_index(posting_date, posting_time, name)""")
\ No newline at end of file
diff --git a/stock/doctype/stock_settings/stock_settings.py b/stock/doctype/stock_settings/stock_settings.py
index 48e1ee1..87e940d 100644
--- a/stock/doctype/stock_settings/stock_settings.py
+++ b/stock/doctype/stock_settings/stock_settings.py
@@ -5,18 +5,23 @@
 
 from __future__ import unicode_literals
 import webnotes
-
+from webnotes import _
 
 class DocType:
 	def __init__(self, d, dl):
 		self.doc, self.doclist = d, dl
-	
+
 	def validate(self):
-		for key in ["item_naming_by", "item_group", "stock_uom", 
+		for key in ["item_naming_by", "item_group", "stock_uom",
 			"allow_negative_stock"]:
 			webnotes.conn.set_default(key, self.doc.fields.get(key, ""))
-			
+
 		from setup.doctype.naming_series.naming_series import set_by_naming_series
-		set_by_naming_series("Item", "item_code", 
+		set_by_naming_series("Item", "item_code",
 			self.doc.get("item_naming_by")=="Naming Series", hide_name_field=True)
-			
+
+		stock_frozen_limit = 356
+		submitted_stock_frozen = self.doc.stock_frozen_upto_days
+		if submitted_stock_frozen > stock_frozen_limit:
+			self.doc.stock_frozen_upto_days = stock_frozen_limit
+			webnotes.msgprint (_("`Freeze Stocks Older Than` should be smaller than %d days.") %stock_frozen_limit)
diff --git a/stock/doctype/stock_settings/stock_settings.txt b/stock/doctype/stock_settings/stock_settings.txt
index 634ee3a..a179091 100644
--- a/stock/doctype/stock_settings/stock_settings.txt
+++ b/stock/doctype/stock_settings/stock_settings.txt
@@ -1,128 +1,134 @@
 [
  {
-  "creation": "2013-06-24 16:37:54", 
-  "docstatus": 0, 
-  "modified": "2013-11-02 19:41:56", 
-  "modified_by": "Administrator", 
+  "creation": "2013-06-24 16:37:54",
+  "docstatus": 0,
+  "modified": "2014-01-27 20:00:56",
+  "modified_by": "Administrator",
   "owner": "Administrator"
- }, 
+ },
  {
-  "description": "Settings", 
-  "doctype": "DocType", 
-  "icon": "icon-cog", 
-  "issingle": 1, 
-  "module": "Stock", 
+  "description": "Settings",
+  "doctype": "DocType",
+  "icon": "icon-cog",
+  "issingle": 1,
+  "module": "Stock",
   "name": "__common__"
- }, 
+ },
  {
-  "doctype": "DocField", 
-  "name": "__common__", 
-  "parent": "Stock Settings", 
-  "parentfield": "fields", 
-  "parenttype": "DocType", 
+  "doctype": "DocField",
+  "name": "__common__",
+  "parent": "Stock Settings",
+  "parentfield": "fields",
+  "parenttype": "DocType",
   "permlevel": 0
- }, 
+ },
  {
-  "create": 1, 
-  "doctype": "DocPerm", 
-  "name": "__common__", 
-  "parent": "Stock Settings", 
-  "parentfield": "permissions", 
-  "parenttype": "DocType", 
-  "permlevel": 0, 
-  "read": 1, 
-  "role": "Material Manager", 
+  "create": 1,
+  "doctype": "DocPerm",
+  "name": "__common__",
+  "parent": "Stock Settings",
+  "parentfield": "permissions",
+  "parenttype": "DocType",
+  "permlevel": 0,
+  "read": 1,
+  "role": "Material Manager",
   "write": 1
- }, 
+ },
  {
-  "doctype": "DocType", 
+  "doctype": "DocType",
   "name": "Stock Settings"
- }, 
+ },
  {
-  "doctype": "DocField", 
-  "fieldname": "item_naming_by", 
-  "fieldtype": "Select", 
-  "label": "Item Naming By", 
+  "doctype": "DocField",
+  "fieldname": "item_naming_by",
+  "fieldtype": "Select",
+  "label": "Item Naming By",
   "options": "Item Code\nNaming Series"
- }, 
+ },
  {
-  "description": "<a href=\"#Sales Browser/Item Group\">Add / Edit</a>", 
-  "doctype": "DocField", 
-  "fieldname": "item_group", 
-  "fieldtype": "Link", 
-  "label": "Default Item Group", 
+  "description": "<a href=\"#Sales Browser/Item Group\">Add / Edit</a>",
+  "doctype": "DocField",
+  "fieldname": "item_group",
+  "fieldtype": "Link",
+  "label": "Default Item Group",
   "options": "Item Group"
- }, 
+ },
  {
-  "doctype": "DocField", 
-  "fieldname": "stock_uom", 
-  "fieldtype": "Link", 
-  "label": "Default Stock UOM", 
+  "doctype": "DocField",
+  "fieldname": "stock_uom",
+  "fieldtype": "Link",
+  "label": "Default Stock UOM",
   "options": "UOM"
- }, 
+ },
  {
-  "doctype": "DocField", 
-  "fieldname": "column_break_4", 
+  "doctype": "DocField",
+  "fieldname": "column_break_4",
   "fieldtype": "Column Break"
- }, 
+ },
  {
-  "doctype": "DocField", 
-  "fieldname": "allow_negative_stock", 
-  "fieldtype": "Check", 
+  "doctype": "DocField",
+  "fieldname": "allow_negative_stock",
+  "fieldtype": "Check",
   "label": "Allow Negative Stock"
- }, 
+ },
  {
-  "doctype": "DocField", 
-  "fieldname": "valuation_method", 
-  "fieldtype": "Select", 
-  "label": "Default Valuation Method", 
+  "doctype": "DocField",
+  "fieldname": "valuation_method",
+  "fieldtype": "Select",
+  "label": "Default Valuation Method",
   "options": "FIFO\nMoving Average"
- }, 
+ },
  {
-  "description": "Percentage you are allowed to receive or deliver more against the quantity ordered. For example: If you have ordered 100 units. and your Allowance is 10% then you are allowed to receive 110 units.", 
-  "doctype": "DocField", 
-  "fieldname": "tolerance", 
-  "fieldtype": "Float", 
+  "description": "Percentage you are allowed to receive or deliver more against the quantity ordered. For example: If you have ordered 100 units. and your Allowance is 10% then you are allowed to receive 110 units.",
+  "doctype": "DocField",
+  "fieldname": "tolerance",
+  "fieldtype": "Float",
   "label": "Allowance Percent"
- }, 
+ },
  {
-  "doctype": "DocField", 
-  "fieldname": "auto_material_request", 
-  "fieldtype": "Section Break", 
+  "doctype": "DocField",
+  "fieldname": "auto_material_request",
+  "fieldtype": "Section Break",
   "label": "Auto Material Request"
- }, 
+ },
  {
-  "doctype": "DocField", 
-  "fieldname": "auto_indent", 
-  "fieldtype": "Check", 
+  "doctype": "DocField",
+  "fieldname": "auto_indent",
+  "fieldtype": "Check",
   "label": "Raise Material Request when stock reaches re-order level"
- }, 
+ },
  {
-  "doctype": "DocField", 
-  "fieldname": "reorder_email_notify", 
-  "fieldtype": "Check", 
+  "doctype": "DocField",
+  "fieldname": "reorder_email_notify",
+  "fieldtype": "Check",
   "label": "Notify by Email on creation of automatic Material Request"
- }, 
+ },
  {
-  "doctype": "DocField", 
-  "fieldname": "freeze_stock_entries", 
-  "fieldtype": "Section Break", 
+  "doctype": "DocField",
+  "fieldname": "freeze_stock_entries",
+  "fieldtype": "Section Break",
   "label": "Freeze Stock Entries"
- }, 
+ },
  {
-  "doctype": "DocField", 
-  "fieldname": "stock_frozen_upto", 
-  "fieldtype": "Date", 
+  "doctype": "DocField",
+  "fieldname": "stock_frozen_upto",
+  "fieldtype": "Date",
   "label": "Stock Frozen Upto"
- }, 
+ },
  {
-  "doctype": "DocField", 
-  "fieldname": "stock_auth_role", 
-  "fieldtype": "Link", 
-  "label": "Role Allowed to edit frozen stock", 
+  "doctype": "DocField",
+  "fieldname": "stock_frozen_upto_days",
+  "fieldtype": "Int",
+  "label": "Freeze Stocks Older Than [Days]"
+ },
+ {
+  "doctype": "DocField",
+  "fieldname": "stock_auth_role",
+  "fieldtype": "Link",
+  "label": "Role Allowed to edit frozen stock",
   "options": "Role"
- }, 
+ },
  {
   "doctype": "DocPerm"
  }
-]
\ No newline at end of file
+]
