diff --git a/gajim/common/connection_handlers_events.py b/gajim/common/connection_handlers_events.py
index 78711cdb0054d5d5d72742de04cd3a435ac4b068..40c0bb6961d6acdfb4bebbfcd3552f4d660f458b 100644
--- a/gajim/common/connection_handlers_events.py
+++ b/gajim/common/connection_handlers_events.py
@@ -30,6 +30,7 @@ from gajim.common import app
 from gajim.common import i18n
 from gajim.common.i18n import _
 from gajim.common.modules import dataforms
+from gajim.common.modules.misc import parse_idle
 from gajim.common.const import KindConstant, SSLError
 from gajim.common.pep import SUPPORTED_PERSONAL_USER_EVENTS
 from gajim.common.jingle_transport import JingleTransportSocks5
@@ -254,12 +255,7 @@ PresenceHelperEvent):
         if delay_tag:
             self._generate_timestamp(self.stanza.timestamp)
         # XEP-0319
-        self.idle_time = None
-        idle_tag = self.stanza.getTag('idle', namespace=nbxmpp.NS_IDLE)
-        if idle_tag:
-            time_str = idle_tag.getAttr('since')
-            tim = helpers.datetime_tuple(time_str)
-            self.idle_time = timegm(tim)
+        self.idle_time = parse_idle(self.stanza)
 
         xtags = self.stanza.getTags('x')
         for x in xtags:
diff --git a/gajim/common/modules/misc.py b/gajim/common/modules/misc.py
index b0719caa72b9e9f839b662a544d247910d5ad4e7..1c8633e109c9db7a044b9264420c3e9418cb547b 100644
--- a/gajim/common/modules/misc.py
+++ b/gajim/common/modules/misc.py
@@ -139,3 +139,24 @@ def parse_xhtml(stanza):
     if app.config.get('ignore_incoming_xhtml'):
         return None
     return stanza.getXHTML()
+
+
+# XEP-0319: Last User Interaction in Presence
+
+def parse_idle(stanza):
+    idle_tag = stanza.getTag('idle', namespace=nbxmpp.NS_IDLE)
+    if idle_tag is None:
+        return
+
+    since = idle_tag.getAttr('since')
+    if since is None:
+        log.warning('No since attr in idle node')
+        log.warning(stanza)
+        return
+
+    timestamp = parse_datetime(since, convert='utc', epoch=True)
+    if timestamp is None:
+        log.warning('Invalid timestamp received: %s', since)
+        log.warning(stanza)
+
+    return timestamp