diff --git a/changelog.d/4033.bugfix b/changelog.d/4033.bugfix
new file mode 100644
index 0000000000000000000000000000000000000000..8f7a0bbbe911ea5437cc2559e9157559b3078d27
--- /dev/null
+++ b/changelog.d/4033.bugfix
@@ -0,0 +1 @@
+Synapse now starts on Python 3.7.
diff --git a/synapse/visibility.py b/synapse/visibility.py
index c64ad2144c8becd2e31c663292ab8f383793fb77..43f48196bee45e2b03514a70c949482f600db560 100644
--- a/synapse/visibility.py
+++ b/synapse/visibility.py
@@ -219,7 +219,7 @@ def filter_events_for_server(store, server_name, events):
     # Whatever else we do, we need to check for senders which have requested
     # erasure of their data.
     erased_senders = yield store.are_users_erased(
-        e.sender for e in events,
+        (e.sender for e in events),
     )
 
     def redact_disallowed(event, state):