diff --git a/erpnext/hr/doctype/leave_application/leave_application.py b/erpnext/hr/doctype/leave_application/leave_application.py
index 8e8e47e..e5ee4e6 100755
--- a/erpnext/hr/doctype/leave_application/leave_application.py
+++ b/erpnext/hr/doctype/leave_application/leave_application.py
@@ -364,32 +364,31 @@
 			create_leave_ledger_entry(self, args, submit)
 
 	def create_ledger_entry_for_intermediate_expiry(self, expiry_date, submit):
-		''' splits leave application into two ledger entries to consider expiry '''
+		''' splits leave application into two ledger entries to consider expiry of allocation '''
 		args = dict(
 			from_date=self.from_date,
 			to_date=self.to_date,
-			leaves=date_diff(expiry_date, self.from_date) * -1
+			leaves=(date_diff(expiry_date, self.from_date) + 1) * -1
 		)
 		create_leave_ledger_entry(self, args, submit)
+
 		start_date = add_days(expiry_date, 1)
 		args.update(dict(
 			from_date=start_date,
 			to_date=self.to_date,
-			leaves=date_diff(self.to_date, start_date) * -1
+			leaves=date_diff(self.to_date, expiry_date) * -1
 		))
 		create_leave_ledger_entry(self, args, submit)
 
 def get_allocation_expiry(employee, leave_type, to_date, from_date):
-	return frappe.db.sql("""
-		SELECT
-			to_date
-		FROM `tabLeave Ledger Entry`
-		WHERE
-			employee='%s'
-			AND leave_type='%s'
-			AND transaction_type='Leave Allocation'
-			AND (to_date BETWEEN %s AND %s)
-		""" %(employee, leave_type, from_date, to_date), as_dict=1)
+	expiry =  frappe.get_all("Leave Ledger Entry",
+		filters={
+			'employee': employee,
+			'leave_type': leave_type,
+			'transaction_type': 'Leave Allocation',
+			'to_date': ['between', (from_date, to_date)]
+		},fields=['to_date'])
+	return expiry[0]['to_date'] if expiry else None
 
 @frappe.whitelist()
 def get_number_of_leave_days(employee, leave_type, from_date, to_date, half_day = None, half_day_date = None):
@@ -452,10 +451,12 @@
 		if remaining_leaves > 0:
 			remaining_days = date_diff(end_date, date) + 1
 			remaining_leaves = min(remaining_days, remaining_leaves)
+
 		return remaining_leaves
 
 	if expiry:
 		remaining_leaves = _get_remaining_leaves(allocation.carry_forwarded_leaves, expiry)
+
 		return flt(allocation.new_leaves_allocated) + flt(remaining_leaves)
 	else:
 		return _get_remaining_leaves(allocation.total_leaves_allocated, allocation.to_date)
@@ -543,7 +544,7 @@
 			"total_leaves_allocated": d.total_leaves_allocated,
 			"carry_forward": d.carry_forward,
 			"carry_forwarded_leaves": d.carry_forwarded_leaves,
-			"new_leaves": d.new_leaves_allocated,
+			"new_leaves_allocated": d.new_leaves_allocated,
 			"leave_type": d.leave_type
 		}))
 	return allocated_leaves
