diff --git a/matrix-util.js b/matrix-util.js
index 55b205b..76a5046 100644
--- a/matrix-util.js
+++ b/matrix-util.js
@@ -127,26 +127,43 @@ MatrixUtil.prototype._updateLastResponseTime = function(partner) {
     let matrix = this.matrix;
     let logger = this.logger;
 
-    if (!matrix.buddies[partner]['last_outgoing']) {
-        logger.verbose('No outgoing yet, skip updateLastResponseTime');
-        return;
+    try {
+        if (!matrix.buddies[partner]['last_outgoing']) {
+            logger.verbose('No outgoing yet, skip updateLastResponseTime');
+            return;
+        }
+
+        if (!matrix.buddies[partner]['last_outgoing']['last_update_ts']) {
+            logger.verbose('No outgoing timestamp yet, skip updateLastResponseTime');
+            return;
+        }
+    }
+    catch(e) {
+        logger.warn('Exception when preparing updateLastResponseTime', {err: e});
     }
 
-    if (!matrix.buddies[partner]['last_outgoing']['last_update_ts']) {
-        logger.verbose('No outgoing timestamp yet, skip updateLastResponseTime');
-        return;
+    try {
+        if (
+            matrix.buddies[partner]['last_incoming']
+            && (Number(matrix.buddies[partner]['last_incoming']['last_update_ts']) > Number(matrix.buddies[partner]['last_outgoing']['last_update_ts']))
+        ) {
+            return;
+        }
+    }
+    catch(e) {
+        logger.warn('Exception when checking if last_incoming > last_outgoing', {err: e});
     }
 
-    if (
-        matrix.buddies[partner]['last_incoming']
-        && (Number(matrix.buddies[partner]['last_incoming']['last_update_ts']) > Number(matrix.buddies[partner]['last_outgoing']['last_update_ts']))
-    ) {
-        return;
+
+    try {
+        let delta = Date.now() - Number(matrix.buddies[partner]['last_outgoing']['last_update_ts']);
+        logger.verbose('Response time in ' + delta + 'ms');
+        matrix.buddies[partner]['last_response_time'] = Math.round(delta/1000);
+    }
+    catch(e) {
+        logger.warn('Exception when calculating last_response_time', {err: e});
     }
 
-    let delta = Date.now() - Number(matrix.buddies[partner]['last_outgoing']['last_update_ts']);
-    logger.verbose('Response time in ' + delta + 'ms');
-    matrix.buddies[partner]['last_response_time'] = Math.round(delta/1000);
 }
 
 MatrixUtil.prototype._updateLastMessage = function(partner, msg, direction) {