diff --git a/synapse/push/__init__.py b/synapse/push/__init__.py
index 6a302305fbf498f104bbf95b86c620b08dc1a7a9..75867b3c3c6f5b8931a2572a5917a9556f4da1f9 100644
--- a/synapse/push/__init__.py
+++ b/synapse/push/__init__.py
@@ -204,10 +204,11 @@ class Pusher(object):
             event_type='m.room.member',
             state_key=ev['user_id']
         )
-        if len(their_member_events_for_room) > 0:
-            dn = their_member_events_for_room[0].content['displayname']
-            if dn is not None:
-                ctx['sender_display_name'] = dn
+        for mev in their_member_events_for_room:
+            if mev.content['membership'] == 'join' and 'displayname' in mev.content:
+                dn = mev.content['displayname']
+                if dn is not None:
+                    ctx['sender_display_name'] = dn
 
         defer.returnValue(ctx)