diff --git a/erpnext/assets/doctype/asset/asset.py b/erpnext/assets/doctype/asset/asset.py
index 350220b..f837c5e 100644
--- a/erpnext/assets/doctype/asset/asset.py
+++ b/erpnext/assets/doctype/asset/asset.py
@@ -171,15 +171,23 @@
 				d.precision("rate_of_depreciation"))
 
 	def make_depreciation_schedule(self):
-		if 'Manual' not in [d.depreciation_method for d in self.finance_books]:
+		if 'Manual' not in [d.depreciation_method for d in self.finance_books] and not self.schedules:
 			self.schedules = []
 
-		if self.get("schedules") or not self.available_for_use_date:
+		if not self.available_for_use_date:
 			return
 
 		for d in self.get('finance_books'):
 			self.validate_asset_finance_books(d)
 
+			start = 0
+			for n in range (len(self.schedules)):
+				if not self.schedules[n].journal_entry:
+					print("*"*100)
+					del self.schedules[n:]
+					start = n
+					break
+
 			value_after_depreciation = (flt(self.gross_purchase_amount) -
 				flt(self.opening_accumulated_depreciation))
 
@@ -192,9 +200,9 @@
 
 			if has_pro_rata:
 				number_of_pending_depreciations += 1
-
+			
 			skip_row = False
-			for n in range(number_of_pending_depreciations):
+			for n in range(start, number_of_pending_depreciations):
 				# If depreciation is already completed (for double declining balance)
 				if skip_row: continue
 
@@ -350,11 +358,12 @@
 			if d.finance_book_id not in finance_books:
 				accumulated_depreciation = flt(self.opening_accumulated_depreciation)
 				value_after_depreciation = flt(self.get_value_after_depreciation(d.finance_book_id))
-				finance_books.append(d.finance_book_id)
+				finance_books.append(int(d.finance_book_id))
 
 			depreciation_amount = flt(d.depreciation_amount, d.precision("depreciation_amount"))
 			value_after_depreciation -= flt(depreciation_amount)
 
+			# for the last row, if depreciation method = Straight Line
 			if straight_line_idx and i == max(straight_line_idx) - 1:
 				book = self.get('finance_books')[cint(d.finance_book_id) - 1]
 				depreciation_amount += flt(value_after_depreciation -
diff --git a/erpnext/assets/doctype/asset_repair/asset_repair.js b/erpnext/assets/doctype/asset_repair/asset_repair.js
index 9d06cae..3328e66 100644
--- a/erpnext/assets/doctype/asset_repair/asset_repair.js
+++ b/erpnext/assets/doctype/asset_repair/asset_repair.js
@@ -28,7 +28,8 @@
 
 	refresh: function(frm) {
 		frm.toggle_display(['completion_date', 'repair_status', 'accounting_details', 'accounting_dimensions_section'], !(frm.doc.__islocal));
-		frm.toggle_display(['stock_consumption_details_section', 'total_repair_cost'], frm.doc.stock_consumption)
+		frm.toggle_display(['stock_consumption_details_section', 'total_repair_cost'], frm.doc.stock_consumption);
+		frm.toggle_display('asset_depreciation_details_section', frm.doc.capitalize_repair_cost);
 
 		if (frm.doc.docstatus) {
 			frm.add_custom_button("View General Ledger", function() {
diff --git a/erpnext/assets/doctype/asset_repair/asset_repair.py b/erpnext/assets/doctype/asset_repair/asset_repair.py
index 74d3114..95abbd3 100644
--- a/erpnext/assets/doctype/asset_repair/asset_repair.py
+++ b/erpnext/assets/doctype/asset_repair/asset_repair.py
@@ -48,6 +48,7 @@
 		if self.capitalize_repair_cost:
 			self.check_for_purchase_invoice()
 			self.make_gl_entries()
+			self.modify_depreciation_schedule()
 
 	def check_repair_status(self):
 		if self.repair_status == "Pending":
@@ -140,8 +141,16 @@
 		for account in asset_category.accounts:
 			if account.company_name == company:
 				return account.fixed_asset_account
+
+	def modify_depreciation_schedule(self):
+		if self.increase_in_asset_life:
+			asset = frappe.get_doc('Asset', self.asset)
+			asset.flags.ignore_validate_update_after_submit = True
+			for row in asset.finance_books:
+				row.total_number_of_depreciations += self.increase_in_asset_life/row.frequency_of_depreciation
+			asset.prepare_depreciation_data()
+			asset.save()
 			
-	
 @frappe.whitelist()
 def get_downtime(failure_date, completion_date):
 	downtime = time_diff_in_hours(completion_date, failure_date)
