diff --git a/synapse/handlers/presence.py b/synapse/handlers/presence.py
index 4b3d0374537fe5643162b5152e134e239dbf4e72..8831d83c564464b5411eece729d58ee552b7a438 100644
--- a/synapse/handlers/presence.py
+++ b/synapse/handlers/presence.py
@@ -443,10 +443,12 @@ class PresenceHandler(BaseHandler):
 
             missing = [user_id for user_id, state in states.items() if not state]
             if missing:
-                states.update({
+                new = {
                     user_id: UserPresenceState.default(user_id)
                     for user_id in missing
-                })
+                }
+                states.update(new)
+                self.user_to_current_state.update(new)
 
         defer.returnValue(states)