diff --git a/userspace/snmpd/wrsTimingStatusGroup.c b/userspace/snmpd/wrsTimingStatusGroup.c
index 881740ab27f72a784382cab1c0a24718043ed444..035a2e8df256b58d4ed69419a6eb6cf701fd4b89 100644
--- a/userspace/snmpd/wrsTimingStatusGroup.c
+++ b/userspace/snmpd/wrsTimingStatusGroup.c
@@ -19,7 +19,7 @@ static char *wrsSoftPLLStatus_str = "wrsSoftPLLStatus";
 static char *wrsSlaveLinksStatus_str = "wrsSlaveLinksStatus";
 static char *wrsPTPFramesFlowing_str = "wrsPTPFramesFlowing";
 
-static void get_wrsPTPStatus(unsigned int ptp_data_nrows);
+static void get_wrsPTPStatus(unsigned int ptp_data_nrows, int t_delta);
 static void get_wrsSoftPLLStatus();
 static void get_wrsSlaveLinksStatus(unsigned int port_status_nrows);
 static void get_wrsPTPFramesFlowing(unsigned int port_status_nrows);
@@ -30,6 +30,8 @@ time_t wrsTimingStatus_data_fill(void)
 	time_t time_ptp_data; /* time when wrsPtpDataTable was updated */
 	time_t time_spll; /* time when softPLL data was updated */
 	time_t time_port_status; /* time when port status table was updated */
+	static time_t time_ptp_data_prev; /* time when previous wrsPtpDataTable
+					   * table was updated */
 	unsigned int ptp_data_nrows; /* number of rows in wrsPtpDataTable */
 	unsigned int port_status_nrows; /* number of rows in PortStatusTable */
 
@@ -62,7 +64,8 @@ time_t wrsTimingStatus_data_fill(void)
 	 * otherwise there may be comparison between the same data */
 	if (time_ptp_data > time_update
 	    && time_spll > time_update) {
-		get_wrsPTPStatus(ptp_data_nrows);
+		get_wrsPTPStatus(ptp_data_nrows,
+				 time_ptp_data - time_ptp_data_prev);
 	}
 
 	/* update when the spll was updated
@@ -79,11 +82,13 @@ time_t wrsTimingStatus_data_fill(void)
 	}
 
 	time_update = get_monotonic_sec();
+	/* save the time of the last ptp_data copy */
+	time_ptp_data_prev = time_ptp_data;
 	/* there was an update, return current time */
 	return time_update;
 }
 
-static void get_wrsPTPStatus(unsigned int ptp_data_nrows)
+static void get_wrsPTPStatus(unsigned int ptp_data_nrows, int t_delta)
 {
 	struct wrsSpllStatus_s *s;
 	struct wrsPtpDataTable_s *pd_a;
@@ -124,29 +129,32 @@ static void get_wrsPTPStatus(unsigned int ptp_data_nrows)
 			if (pd_a[i].wrsPtpServoUpdates == wrsPtpServoUpdates_prev[i]) {
 				t->wrsPTPStatus = WRS_PTP_STATUS_ERROR;
 				snmp_log(LOG_ERR, "SNMP: " SL_ER " %s: "
-					 "No PTP servo update since last check\n",
-					 slog_obj_name);
+					 "No PTP servo update since last check (%ds)\n",
+					 slog_obj_name, t_delta);
 			}
 			if (pd_a[i].wrsPtpServoStateErrCnt != wrsPtpServoStateErrCnt_prev[i]) {
 				t->wrsPTPStatus = WRS_PTP_STATUS_ERROR;
 				snmp_log(LOG_ERR, "SNMP: " SL_ER " %s: "
-					 "PTP servo not in TRACK_PHASE - %d times since last check\n",
+					 "PTP servo not in TRACK_PHASE - %d times since last check (%ds)\n",
 					 slog_obj_name,
-					 pd_a[i].wrsPtpServoStateErrCnt - wrsPtpServoStateErrCnt_prev[i]);
+					 pd_a[i].wrsPtpServoStateErrCnt - wrsPtpServoStateErrCnt_prev[i],
+					 t_delta);
 			}
 			if (pd_a[i].wrsPtpClockOffsetErrCnt != wrsPtpClockOffsetErrCnt_prev[i]) {
 				t->wrsPTPStatus = WRS_PTP_STATUS_ERROR;
 				snmp_log(LOG_ERR, "SNMP: " SL_ER " %s: "
-					 "PTP clock offset too large - %d times since last check\n",
+					 "PTP clock offset too large - %d times since last check (%ds)\n",
 					 slog_obj_name,
-					 pd_a[i].wrsPtpClockOffsetErrCnt - wrsPtpClockOffsetErrCnt_prev[i]);
+					 pd_a[i].wrsPtpClockOffsetErrCnt - wrsPtpClockOffsetErrCnt_prev[i],
+					 t_delta);
 			}
 			if (pd_a[i].wrsPtpRTTErrCnt != wrsPtpRTTErrCnt_prev[i]) {
 				t->wrsPTPStatus = WRS_PTP_STATUS_ERROR;
 				snmp_log(LOG_ERR, "SNMP: " SL_ER " %s: "
-					 "Jump in RTT value - %d times since last check\n",
+					 "Jump in RTT value - %d times since last check (%ds)\n",
 					 slog_obj_name,
-					 pd_a[i].wrsPtpRTTErrCnt - wrsPtpRTTErrCnt_prev[i]);
+					 pd_a[i].wrsPtpRTTErrCnt - wrsPtpRTTErrCnt_prev[i],
+					 t_delta);
 			}
 			if (pd_a[i].wrsPtpDeltaTxM == 0) {
 				t->wrsPTPStatus = WRS_PTP_STATUS_ERROR;