diff --git a/common/lib/client/realtimepresence.js b/common/lib/client/realtimepresence.js index ce21eba240..37a9b18050 100644 --- a/common/lib/client/realtimepresence.js +++ b/common/lib/client/realtimepresence.js @@ -175,7 +175,6 @@ var RealtimePresence = (function() { break; case presenceAction.UPDATE: case presenceAction.ENTER: - presence.action = presenceAction.PRESENT; case presenceAction.PRESENT: if(members.put(presence)) { broadcastMessages.push(presence); @@ -259,6 +258,10 @@ var RealtimePresence = (function() { }; PresenceMap.prototype.put = function(item) { + if(Utils.arrIn([presenceAction.ENTER, presenceAction.UPDATE], item.action)) { + item = Utils.copy(item); + item.action = presenceAction.PRESENT; + } var map = this.map, key = memberKey(item); /* we've seen this member, so do not remove it at the end of sync */ if(this.residualMembers)