diff --git a/lib/models/room.js b/lib/models/room.js index 46c07fb90..03fd00722 100644 --- a/lib/models/room.js +++ b/lib/models/room.js @@ -250,8 +250,10 @@ Room.prototype.addEventsToTimeline = function(events, toStartOfTimeline) { stateContext.setStateEvents([events[i]]); // it is possible that the act of setting the state event means we // can set more metadata (specifically sender/target props), so try - // it again if the prop wasn't previously set. - if (!events[i].sender) { + // it again if the prop wasn't previously set. It may also mean that + // the sender/target is updated (if the event set was a room member event) + // so we want to use the *updated* member (new avatar/name) instead. + if (!events[i].sender || events[i].getType() === "m.room.member") { setEventMetadata(events[i], stateContext, toStartOfTimeline); } }