 
 
   addMessage: (message) ->
-    index = if @lastToFirst then @listController.getItemCount() else 0
+    return  if @messageMap[message.id]
+
+    {lastToFirst} = @getOptions()
+    index = if lastToFirst then @listController.getItemCount() else 0
+    @messageMap[message.id] = yes
     @prependMessage message, index
 
 



  privateMessageRemoved: (item, index) ->

    prevSibling = @listController.getListItems()[index-1]
    nextSibling = @listController.getListItems()[index]

  hasSameOwner = (a, b) -> a.getData().account._id is b.getData().account._id

  privateMessageAdded: (item, index) ->
    @scrollDown()
    {data} = item
    @messageMap[data.id] = yes

    prevSibling = @listController.getListItems()[index-1]
    nextSibling = @listController.getListItems()[index+1]

