diff --git a/synapse/handlers/federation.py b/synapse/handlers/federation.py
index 2f8959db923421da5a76a131ce8d9a7d1b64a55b..ff6bb475b58cdb9904921d87a05bcfdd18bc83fc 100644
--- a/synapse/handlers/federation.py
+++ b/synapse/handlers/federation.py
@@ -1106,11 +1106,16 @@ class FederationHandler(BaseHandler):
                 )
 
             if do_auth:
+                in_room = yield self.auth.check_host_in_room(
+                    event.room_id,
+                    origin
+                )
+                if not in_room:
+                    raise AuthError(403, "Host not in room.")
+
                 events = yield self._filter_events_for_server(
                     origin, event.room_id, [event]
                 )
-                if not events:
-                    raise AuthError(403, "Host not in room.")
 
                 event = events[0]