diff --git a/gajim/chat_control.py b/gajim/chat_control.py
index 8d850fa3f387445e9e5b5e139b6b940c315ef653..df5ebe85e4f32bdf2cff1f335298113d49e954a1 100644
--- a/gajim/chat_control.py
+++ b/gajim/chat_control.py
@@ -559,6 +559,8 @@ def _on_message_received(self, event):
                          correct_id=event.correct_id,
                          additional_data=event.additional_data)
 
+        self.conversation_view.set_read_marker(event.properties.id)
+
     def _on_message_error(self, event):
         self.conversation_view.show_error(event.message_id, event.error)
 
diff --git a/gajim/gtk/conversation/view.py b/gajim/gtk/conversation/view.py
index dc791b869f5693349a3d75e90dfa36fc61979a8f..92870692348fe7fc316b14fccbd56e0639aa80d0 100644
--- a/gajim/gtk/conversation/view.py
+++ b/gajim/gtk/conversation/view.py
@@ -311,6 +311,10 @@ def iter_rows(self):
             yield row
 
     def set_read_marker(self, id_):
+        if id_ is None:
+            self._read_marker_row.hide()
+            return
+
         row = self._get_row_by_message_id(id_)
         if row is None:
             return