diff --git a/erpnext/schools/api.py b/erpnext/schools/api.py
index db65a69..c613c8c 100644
--- a/erpnext/schools/api.py
+++ b/erpnext/schools/api.py
@@ -114,13 +114,17 @@
 	return guardians
 
 @frappe.whitelist()
-def get_student_group_students(student_group):
+def get_student_group_students(student_group, include_inactive=0):
 	"""Returns List of student, student_name in Student Group.
 
 	:param student_group: Student Group.
 	"""
-	students = frappe.get_list("Student Group Student", fields=["student", "student_name"] , 
-		filters={"parent": student_group, "active": 1}, order_by= "group_roll_number")
+	if include_inactive:
+		students = frappe.get_list("Student Group Student", fields=["student", "student_name"] ,
+			filters={"parent": student_group}, order_by= "group_roll_number")
+	else:
+		students = frappe.get_list("Student Group Student", fields=["student", "student_name"] ,
+			filters={"parent": student_group, "active": 1}, order_by= "group_roll_number")
 	return students
 
 @frappe.whitelist()
diff --git a/erpnext/schools/report/student_monthly_attendance_sheet/student_monthly_attendance_sheet.py b/erpnext/schools/report/student_monthly_attendance_sheet/student_monthly_attendance_sheet.py
index 1e79a93..d869cec 100644
--- a/erpnext/schools/report/student_monthly_attendance_sheet/student_monthly_attendance_sheet.py
+++ b/erpnext/schools/report/student_monthly_attendance_sheet/student_monthly_attendance_sheet.py
@@ -15,19 +15,24 @@
 	to_date = get_last_day(filters["month"] + '-' + filters["year"])
 	total_days_in_month = date_diff(to_date, from_date) +1
 	columns = get_columns(total_days_in_month)
-	students = get_student_group_students(filters.get("student_group"))
+	students = get_student_group_students(filters.get("student_group"),1)
 	students_list = get_students_list(students)
 	att_map = get_attendance_list(from_date, to_date, filters.get("student_group"), students_list)
 	data = []
 	for stud in students:
 		row = [stud.student, stud.student_name]
+		student_status = frappe.db.get_value("Student", stud.student, "enabled")
 		date = from_date
 		total_p = total_a = 0.0
 		for day in range(total_days_in_month):
 			status="None"
 			if att_map.get(stud.student):
 				status = att_map.get(stud.student).get(date, "None")
-			status_map = {"Present": "P", "Absent": "A", "None": ""}
+			elif not student_status:
+				status = "Inactive"
+			else:
+				status = "None"
+			status_map = {"Present": "P", "Absent": "A", "None": "", "Inactive":"-"}
 			row.append(status_map[status])
 			if status == "Present":
 				total_p += 1
