 
   componentWillUnmount: ->
     unsubscribe() for unsubscribe in @_unsubscribers
+    window.removeEventListener("resize", @__onResize)
 
   shouldComponentUpdate: (nextProps, nextState) ->
     not _.isEqual(nextProps, @props) or not _.isEqual(nextState, @state)
 
   componentDidUpdate: (prevProps, prevState) ->
-    didLoad = prevState.loading and not @state.loading
-
+    newDraftIds = @_newDraftIds(prevState)
+    newMessageIds = @_newMessageIds(prevState)
+
+    if prevState.loading and not @state.loading
+      @_prepareContentForDisplay()
+    else if newDraftIds.length > 0
+      @_focusDraft(@refs["composerItem-#{newDraftIds[0]}"])
+      @_prepareContentForDisplay()
+    else if newMessageIds.length > 0
+      @_prepareContentForDisplay()
+
+    @_cacheScrollPos()
+
+  _newDraftIds: (prevState) ->
     oldDraftIds = _.map(_.filter((prevState.messages ? []), (m) -> m.draft), (m) -> m.id)
     newDraftIds = _.map(_.filter((@state.messages ? []), (m) -> m.draft), (m) -> m.id)
-    addedDraftIds = _.difference(newDraftIds, oldDraftIds)
-    didAddDraft = addedDraftIds.length > 0
-
-    if didLoad
-      @_prepareContentForDisplay()
-
-    else if didAddDraft
-      @_focusDraft(@refs["composerItem-#{addedDraftIds[0]}"])
-      @_prepareContentForDisplay()
+    return _.difference(newDraftIds, oldDraftIds) ? []
+
+  _newMessageIds: (prevState) ->
+    oldMessageIds = _.map(_.reject((prevState.messages ? []), (m) -> m.draft), (m) -> m.id)
+    newMessageIds = _.map(_.reject((@state.messages ? []), (m) -> m.draft), (m) -> m.id)
+    return _.difference(newMessageIds, oldMessageIds) ? []
 
   _focusDraft: (draftDOMNode) ->
     # We need a 100ms delay so the DOM can finish painting the elements on

          participants[contact.email] = contact
    return _.values(participants)

MessageList.minWidth = 500
MessageList.maxWidth = 900

      "ready": @state.ready

    <div className="message-list" id="message-list">
      <div tabIndex="-1"
           className={wrapClass}
           onScroll={_.debounce(@_cacheScrollPos, 100)}
           ref="messageWrap">
        <div className="message-list-notification-bars">
          {@_messageListNotificationBars()}
        </div>
