diff --git a/erpnext/hr/report/employee_birthday/employee_birthday.py b/erpnext/hr/report/employee_birthday/employee_birthday.py
index 51a5051..9bf6106 100644
--- a/erpnext/hr/report/employee_birthday/employee_birthday.py
+++ b/erpnext/hr/report/employee_birthday/employee_birthday.py
@@ -7,32 +7,32 @@
 
 def execute(filters=None):
 	if not filters: filters = {}
-	
+
 	columns = get_columns()
 	data = get_employees(filters)
-	
+
 	return columns, data
-	
+
 def get_columns():
 	return [
-		"Employee:Link/Employee:120", "Date of Birth:Date:100", "Branch:Link/Branch:120", 
-		"Department:Link/Department:120", "Designation:Link/Designation:120", "Gender::60", 
+		"Employee:Link/Employee:120", "Date of Birth:Date:100", "Branch:Link/Branch:120",
+		"Department:Link/Department:120", "Designation:Link/Designation:120", "Gender::60",
 		"Company:Link/Company:120"
 	]
-	
+
 def get_employees(filters):
 	conditions = get_conditions(filters)
-	return frappe.db.sql("""select name, date_of_birth, branch, department, designation, 
+	return frappe.db.sql("""select name, date_of_birth, branch, department, designation,
 	gender, company from tabEmployee where status = 'Active' %s""" % conditions, as_list=1)
-	
+
 def get_conditions(filters):
 	conditions = ""
 	if filters.get("month"):
-		month = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", 
+		month = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov",
 			"Dec"].index(filters["month"]) + 1
 		conditions += " and month(date_of_birth) = '%s'" % month
-	
+
 	if filters.get("company"): conditions += " and company = '%s'" % \
-		filters["company"].repalce("'", "\'")
-	
-	return conditions
\ No newline at end of file
+		filters["company"].replace("'", "\\'")
+
+	return conditions
