diff --git a/hr/doctype/holiday_block_list/holiday_block_list.py b/hr/doctype/holiday_block_list/holiday_block_list.py
index 619f373..87ab705 100644
--- a/hr/doctype/holiday_block_list/holiday_block_list.py
+++ b/hr/doctype/holiday_block_list/holiday_block_list.py
@@ -23,7 +23,8 @@
 test_records = [[{
 		"doctype":"Holiday Block List",
 		"holiday_block_list_name": "_Test Holiday Block List",
-		"year": "_Test Fiscal Year"
+		"year": "_Test Fiscal Year",
+		"company": "_Test Company"
 	}, {
 		"doctype": "Holiday Block List Date",
 		"parent": "_Test Holiday Block List",
diff --git a/hr/doctype/holiday_block_list/holiday_block_list.txt b/hr/doctype/holiday_block_list/holiday_block_list.txt
index 31b2f98..23b70e2 100644
--- a/hr/doctype/holiday_block_list/holiday_block_list.txt
+++ b/hr/doctype/holiday_block_list/holiday_block_list.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-04 15:31:29", 
   "docstatus": 0, 
-  "modified": "2013-02-06 14:39:09", 
+  "modified": "2013-02-07 08:47:25", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -54,6 +54,21 @@
   "reqd": 1
  }, 
  {
+  "doctype": "DocField", 
+  "fieldname": "company", 
+  "fieldtype": "Link", 
+  "label": "Company", 
+  "options": "Company", 
+  "reqd": 1
+ }, 
+ {
+  "description": "If not checked, the list will have to be added to each Department where it has to be applied.", 
+  "doctype": "DocField", 
+  "fieldname": "applies_to_all_departments", 
+  "fieldtype": "Check", 
+  "label": "Applies to all Departments"
+ }, 
+ {
   "description": "Stop users from making Leave Applications on following days.", 
   "doctype": "DocField", 
   "fieldname": "block_days", 
diff --git a/hr/doctype/leave_application/leave_application.py b/hr/doctype/leave_application/leave_application.py
index cab8f17..9c6278d 100755
--- a/hr/doctype/leave_application/leave_application.py
+++ b/hr/doctype/leave_application/leave_application.py
@@ -46,22 +46,39 @@
 				raise_exception=True)
 
 	def validate_block_days(self):
-		from_date = getdate(self.doc.from_date)
-		to_date = getdate(self.doc.to_date)
-		
+		for block_list in self.get_applicable_block_lists():
+			self.check_block_dates(block_list)
+
+	def get_applicable_block_lists(self):
+		block_lists = []
+		def add_block_list(block_list):
+			if block_list:
+				if not self.is_user_in_allow_list(block_list):
+					block_lists.append(block_list)
+
+		# per department
 		department = webnotes.conn.get_value("Employee", self.doc.employee, "department")
 		if department:
 			block_list = webnotes.conn.get_value("Department", department, "holiday_block_list")
-			if block_list:
-				if self.is_user_in_allow_list(block_list):
-					return
-				for d in webnotes.conn.sql("""select block_date, reason from
-					`tabHoliday Block List Date` where parent=%s""", block_list, as_dict=1):
-					block_date = getdate(d.block_date)
-					if block_date > from_date and block_date < to_date:
-						webnotes.msgprint(_("You cannot apply for a leave on the following date because it is blocked")
-							+ ": " + formatdate(d.block_date) + _(" Reason: ") + d.reason)
-						raise LeaveDayBlockedError
+			add_block_list(block_list)
+
+		# global
+		for block_list in webnotes.conn.sql_list("""select name from `tabHoliday Block List`
+			where ifnull(applies_to_all_departments,0)=1 and company=%s""", self.doc.company):
+			add_block_list(block_list)
+				
+		return block_lists
+
+	def check_block_dates(self, block_list):
+		from_date = getdate(self.doc.from_date)
+		to_date = getdate(self.doc.to_date)
+		for d in webnotes.conn.sql("""select block_date, reason from
+			`tabHoliday Block List Date` where parent=%s""", block_list, as_dict=1):
+			block_date = getdate(d.block_date)
+			if block_date > from_date and block_date < to_date:
+				webnotes.msgprint(_("You cannot apply for a leave on the following date because it is blocked")
+					+ ": " + formatdate(d.block_date) + _(" Reason: ") + d.reason)
+				raise LeaveDayBlockedError
 
 	def is_user_in_allow_list(self, block_list):
 		return webnotes.session.user in webnotes.conn.sql_list("""select allow_user
diff --git a/hr/doctype/leave_application/leave_application.txt b/hr/doctype/leave_application/leave_application.txt
index 4436d3c..e105dff 100644
--- a/hr/doctype/leave_application/leave_application.txt
+++ b/hr/doctype/leave_application/leave_application.txt
@@ -1,8 +1,8 @@
 [
  {
-  "creation": "2013-01-10 16:34:14", 
+  "creation": "2013-02-02 14:40:08", 
   "docstatus": 0, 
-  "modified": "2013-02-01 10:34:14", 
+  "modified": "2013-02-07 08:54:22", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -182,6 +182,15 @@
  }, 
  {
   "doctype": "DocField", 
+  "fieldname": "company", 
+  "fieldtype": "Link", 
+  "label": "Company", 
+  "options": "Company", 
+  "permlevel": 0, 
+  "reqd": 1
+ }, 
+ {
+  "doctype": "DocField", 
   "fieldname": "letter_head", 
   "fieldtype": "Link", 
   "label": "Letter Head", 
@@ -241,4 +250,4 @@
   "role": "Leave Approver", 
   "submit": 0
  }
-]
+]
\ No newline at end of file
diff --git a/hr/doctype/leave_application/test_leave_application.py b/hr/doctype/leave_application/test_leave_application.py
index e485289..e7c1bcc 100644
--- a/hr/doctype/leave_application/test_leave_application.py
+++ b/hr/doctype/leave_application/test_leave_application.py
@@ -4,20 +4,33 @@
 from hr.doctype.leave_application.leave_application import LeaveDayBlockedError
 
 class TestLeaveApplication(unittest.TestCase):
+	def get_application(self):
+		application = webnotes.model_wrapper(test_records[1])
+		application.doc.from_date = "2013-01-01"
+		application.doc.to_date = "2013-01-05"
+		return application
+
 	def test_block_list(self):
 		import webnotes
 		webnotes.conn.set_value("Employee", "_T-Employee-0001", "department", 
 			"_Test Department with Block List")
 		
-		application = webnotes.model_wrapper(test_records[1])
-		application.doc.from_date = "2013-01-01"
-		application.doc.to_date = "2013-01-05"
+		application = self.get_application()
 		self.assertRaises(LeaveDayBlockedError, application.insert)
 		
 		webnotes.session.user = "test1@erpnext.com"
 		webnotes.get_obj("Profile", "test1@erpnext.com").add_role("HR User")
 		self.assertTrue(application.insert())
 		
+	def test_global_block_list(self):
+		application = self.get_application()
+		webnotes.conn.set_value("Holiday Block List", "_Test Holiday Block List", 
+			"applies_to_all_departments", 1)
+		webnotes.conn.set_value("Employee", "_T-Employee-0001", "department", 
+			"_Test Department")
+		webnotes.session.user = "test@erpnext.com"
+
+		self.assertRaises(LeaveDayBlockedError, application.insert)
 
 test_records = [
 	[{
@@ -35,7 +48,8 @@
 		"to_date": "2013-05-05",
 		"posting_date": "2013-01-02",
 		"fiscal_year": "_Test Fiscal Year",
-		"employee": "_T-Employee-0001"
+		"employee": "_T-Employee-0001",
+		"company": "_Test Company"
 	}]]
 
 if __name__=="__main__":
diff --git a/patches/february_2013/update_company_in_leave_application.py b/patches/february_2013/update_company_in_leave_application.py
new file mode 100644
index 0000000..098c7e3
--- /dev/null
+++ b/patches/february_2013/update_company_in_leave_application.py
@@ -0,0 +1,9 @@
+def execute():
+	import webnotes
+	webnotes.conn.sql("""update `tabLeave Application`, `tabEmployee` set
+		`tabLeave Application`.company = `tabEmployee`.company where
+		`tabLeave Application`.employee = `tabEmployee`.name""")
+		
+	company = webnotes.conn.get_default("company")
+	webnotes.conn.sql("""update `tabLeave Application`
+		set company = %s where ifnull(company,'')=''""", company)
\ No newline at end of file
diff --git a/patches/patch_list.py b/patches/patch_list.py
index cf9c189..467c6b0 100644
--- a/patches/patch_list.py
+++ b/patches/patch_list.py
@@ -166,4 +166,5 @@
 	"patches.february_2013.remove_sales_order_pending_items",
 	"patches.february_2013.account_negative_balance",
 	"patches.february_2013.remove_account_utils_folder",
+	"patches.february_2013.update_company_in_leave_application"
 ]
\ No newline at end of file
