diff --git a/briar-gtk/briar_gtk/containers/private_chat.py b/briar-gtk/briar_gtk/containers/private_chat.py
index 73699706212feab9f3faa7332497fee95a47343e..af9062bf084b52eaeae752830f80989671505c21 100644
--- a/briar-gtk/briar_gtk/containers/private_chat.py
+++ b/briar-gtk/briar_gtk/containers/private_chat.py
@@ -87,7 +87,12 @@ class PrivateChatContainer(Container):
         self._messages_box.add(message_widget)
 
     def _add_message_async(self, message):
-        GLib.idle_add(self._add_message, message)
+        if message["data"]["contactId"] == self._contact_id:
+            GLib.idle_add(self._add_message_and_scroll, message["data"])
+
+    def _add_message_and_scroll(self, message):
+        self._add_message(message)
+        GLib.idle_add(self._scroll_to_bottom)
 
     # pylint: disable=unused-argument
     def _on_message_scroll_draw(self, widget, cairo_context):