        :component-will-unmount
        (fn [] (put! kill-chan (js/Date.)))
 
-       :component-did-update scroll-to-bottom!
+       :component-did-update
+       (fn [c _]
+         (let [last-msg (last @messages)]
+           (when (and (not= @old-last-msg (:id last-msg))
+                      (= (:user-id last-msg) @(subscribe [:user-id])))
+             (reset! at-bottom? true))
+           (reset! old-last-msg (:id last-msg)))
+         (scroll-to-bottom! c))
 
        :reagent-render
        (fn [thread-id]


        last-open-at (subscribe [:thread-last-open-at thread-id])

        unseen? (fn [message] (> (:created-at message)
                                        @last-open-at))

        kill-chan (chan)
        embed-update-chan (chan)

       (fn [c]
         (reset! at-bottom? true)
         (scroll-to-bottom! c)
         (reset! old-last-msg (:id (last @messages)))
         (go (loop []
               (let [[_ ch] (alts! [embed-update-chan kill-chan])]
                 (when (not= ch kill-chan)
