diff --git a/warden3/contrib/connectors/hp-labrea/labrea-idea.py b/warden3/contrib/connectors/hp-labrea/labrea-idea.py
index 1d383c07773c817b6173a14e172da74da981c156..3bb95569cea42fc6d2e4638e0083c410fc05250a 100755
--- a/warden3/contrib/connectors/hp-labrea/labrea-idea.py
+++ b/warden3/contrib/connectors/hp-labrea/labrea-idea.py
@@ -103,16 +103,16 @@ class WindowContextMgr(object):
     def expire_queue(self, queue, time_key, window):
         aggr_events = []
         while queue:
-            ctx = queue[0][1]
-            if ctx not in self.contexts:
-                # event went away while processing another queue, so just clean up
+            timestamp, ctx = queue[0]
+            if ctx not in self.contexts or timestamp < self.contexts[ctx][time_key]:
+                # event went away while processing another queue or obsolete record so just clean up
                 heapq.heappop(queue)
-            elif self.contexts[ctx][time_key] < self.update_timestamp - window:
+            elif timestamp < self.update_timestamp - window:
                 heapq.heappop(queue)
                 closed = self.ctx_close(self.contexts[ctx])
                 if closed is not None:
                     aggr_events.append(closed)
-                    del self.contexts[ctx]
+                del self.contexts[ctx]
             else:
                 break
         return aggr_events