diff --git a/erpnext/support/doctype/issue/issue.js b/erpnext/support/doctype/issue/issue.js
index bad40cc..66c62d1 100644
--- a/erpnext/support/doctype/issue/issue.js
+++ b/erpnext/support/doctype/issue/issue.js
@@ -41,7 +41,19 @@
 
 		if (frm.doc.status !== "Closed" && frm.doc.agreement_fulfilled === "Ongoing") {
 			if (frm.doc.service_level_agreement) {
-				set_time_to_resolve_and_response(frm);
+				if (frm.doc.status == "Replied") {
+					frm.dashboard.clear_headline();
+					let message = {"indicator": "orange", "msg": __("Replied {0}", [moment(frm.doc.on_hold_since).fromNow()])};
+					frm.dashboard.set_headline_alert(
+						'<div class="row">' +
+							'<div class="col-xs-12">' +
+								'<span class="indicator whitespace-nowrap '+ message.indicator +'"><span class="hidden-xs">'+ message.msg +'</span></span> ' +
+							'</div>' +
+						'</div>'
+					);
+				} else {
+					set_time_to_resolve_and_response(frm);
+				}
 			}
 
 			frm.add_custom_button(__("Close"), function () {
diff --git a/erpnext/support/doctype/issue/issue.json b/erpnext/support/doctype/issue/issue.json
index 131e1cb..82443a5 100644
--- a/erpnext/support/doctype/issue/issue.json
+++ b/erpnext/support/doctype/issue/issue.json
@@ -31,6 +31,8 @@
   "resolution_by",
   "resolution_by_variance",
   "service_level_agreement_creation",
+  "on_hold_since",
+  "total_hold_time",
   "response",
   "mins_to_first_response",
   "first_responded_on",
@@ -395,12 +397,28 @@
    "read_only": 1,
    "show_days": 1,
    "show_seconds": 1
+  },
+  {
+   "fieldname": "on_hold_since",
+   "fieldtype": "Datetime",
+   "label": "On Hold Since",
+   "read_only": 1,
+   "show_days": 1,
+   "show_seconds": 1
+  },
+  {
+   "fieldname": "total_hold_time",
+   "fieldtype": "Duration",
+   "label": "Total Hold Time",
+   "read_only": 1,
+   "show_days": 1,
+   "show_seconds": 1
   }
  ],
  "icon": "fa fa-ticket",
  "idx": 7,
  "links": [],
- "modified": "2020-05-06 12:28:58.093654",
+ "modified": "2020-05-14 23:59:01.172007",
  "modified_by": "Administrator",
  "module": "Support",
  "name": "Issue",
diff --git a/erpnext/support/doctype/issue/issue.py b/erpnext/support/doctype/issue/issue.py
index a9c4897..47b9c05 100644
--- a/erpnext/support/doctype/issue/issue.py
+++ b/erpnext/support/doctype/issue/issue.py
@@ -72,7 +72,36 @@
 			# if no date, it should be set as None and not a blank string "", as per mysql strict config
 			self.resolution_date = None
 			self.reset_issue_metrics()
-			self.agreement_fulfilled = "Ongoing"
+
+		if self.status == "Replied" and status != "Replied":
+			self.on_hold_since = frappe.flags.current_time or now_datetime()
+			if not self.first_responded_on:
+				self.response_by = None
+				self.response_by_variance = None
+			self.resolution_by = None
+			self.resolution_by_variance = None
+
+		if self.status != "Replied" and status == "Replied":
+			hold_time = self.total_hold_time if self.total_hold_time else 0
+			self.total_hold_time = hold_time + time_diff_in_seconds(now_datetime(), self.on_hold_since)
+
+		if self.status == "Open" and status == "Replied":
+			start_date_time = get_datetime(self.service_level_agreement_creation)
+			priority = get_priority(self)
+			hold_time = time_diff_in_seconds(now_datetime(), self.on_hold_since)
+
+			if not self.first_responded_on:
+				response_by = get_expected_time_for(parameter='response', service_level=priority, start_date_time=start_date_time)
+				self.response_by = add_to_date(response_by, seconds=round(hold_time))
+				response_by_variance = round(time_diff_in_hours(self.response_by, now_datetime()))
+				self.response_by_variance = response_by_variance + (hold_time // 3600)
+
+			resolution_by = get_expected_time_for(parameter='resolution', service_level=priority, start_date_time=start_date_time)
+			self.resolution_by = add_to_date(resolution_by, seconds=round(hold_time))
+			resolution_by_variance = round(time_diff_in_hours(self.resolution_by, now_datetime()))
+			self.resolution_by_variance = resolution_by_variance + (hold_time // 3600)
+			self.on_hold_since = None
+
 
 	def update_agreement_status(self):
 		if self.service_level_agreement and self.agreement_fulfilled == "Ongoing":
@@ -233,6 +262,16 @@
 		self.db_set('avg_response_time', None)
 
 
+def get_priority(issue):
+	service_level_agreement = frappe.get_doc("Service Level Agreement", issue.service_level_agreement)
+	priority = service_level_agreement.get_service_level_agreement_priority(issue.priority)
+	priority.update({
+		"support_and_resolution": service_level_agreement.support_and_resolution,
+		"holiday_list": service_level_agreement.holiday_list
+	})
+	return priority
+
+
 def get_expected_time_for(parameter, service_level, start_date_time):
 	current_date_time = start_date_time
 	expected_time = current_date_time
