diff --git a/synapse/handlers/sync.py b/synapse/handlers/sync.py
index 380798b7abd4f940d4a9a015e03ff5a85707eafc..7b2d6e3457be5f9fb1e825f941c017d8aca80fbf 100644
--- a/synapse/handlers/sync.py
+++ b/synapse/handlers/sync.py
@@ -82,7 +82,7 @@ class SyncResult(collections.namedtuple("SyncResult", [
         events.
         """
         return bool(
-            self.private_user_data or self.public_user_data or self.rooms
+            self.presence or self.joined or self.invited
         )
 
 
@@ -122,8 +122,8 @@ class SyncHandler(BaseHandler):
                 )
 
             result = yield self.notifier.wait_for_events(
-                sync_config.user, room_ids,
-                sync_config.filter, timeout, current_sync_callback
+                sync_config.user, room_ids, timeout, current_sync_callback,
+                from_token=since_token
             )
             defer.returnValue(result)