diff --git a/erpnext/hr/doctype/holiday_list/holiday_list.py b/erpnext/hr/doctype/holiday_list/holiday_list.py
index a796403..de4f876 100644
--- a/erpnext/hr/doctype/holiday_list/holiday_list.py
+++ b/erpnext/hr/doctype/holiday_list/holiday_list.py
@@ -4,7 +4,7 @@
 from __future__ import unicode_literals
 import frappe
 
-from frappe.utils import cint
+from frappe.utils import cint, get_datetime
 from frappe import throw, _
 from frappe.model.document import Document
 
@@ -18,7 +18,6 @@
 
 	def get_weekly_off_dates(self):
 		self.validate_values()
-		self.validate_weekly_days()
 		date_list = self.get_weekly_off_date_list(self.from_date, self.to_date)
 		last_idx = max([cint(d.idx) for d in self.get("holidays")] or [0,])
 		for i, d in enumerate(date_list):
@@ -65,18 +64,23 @@
 
 	def get_weekly_off_date_list(self, start_date, end_date):
 		from frappe.utils import getdate
-		year_start_date, year_end_date = getdate(start_date), getdate(end_date)
+		start_date, end_date = getdate(start_date), getdate(end_date)
 
 		from dateutil import relativedelta
 		from datetime import timedelta
 		import calendar
 
 		date_list = []
+		existing_date_list = []
 		weekday = getattr(calendar, (self.weekly_off).upper())
-		reference_date = year_start_date + relativedelta.relativedelta(weekday=weekday)
+		reference_date = start_date + relativedelta.relativedelta(weekday=weekday)
+		
+		for holiday in self.get("holidays"):
+			existing_date_list.append(get_datetime(holiday.holiday_date).date())
 
-		while reference_date <= year_end_date:
-			date_list.append(reference_date)
+		while reference_date <= end_date:
+			if reference_date not in existing_date_list:
+				date_list.append(reference_date)
 			reference_date += timedelta(days=7)
 
 		return date_list
diff --git a/erpnext/hr/doctype/holiday_list/test_records.json b/erpnext/hr/doctype/holiday_list/test_records.json
index a8cf56b..0a0afe8 100644
--- a/erpnext/hr/doctype/holiday_list/test_records.json
+++ b/erpnext/hr/doctype/holiday_list/test_records.json
@@ -1,7 +1,8 @@
 [
  {
   "doctype": "Holiday List",
-  "fiscal_year": "_Test Fiscal Year 2013", 
+  "from_date": "2013-01-01",
+  "to_date":"2013-12-31",
   "holidays": [
    {
     "description": "New Year", 
