diff --git a/gajim/common/connection_handlers.py b/gajim/common/connection_handlers.py
index e0835d514aba3aa8934d71a8db809d2e68e2cc17..13cf4e9161b2338b75234fe3dff662457e4eeeea 100644
--- a/gajim/common/connection_handlers.py
+++ b/gajim/common/connection_handlers.py
@@ -851,10 +851,9 @@ class ConnectionHandlersBase:
                 obj.contact.contact_name = obj.contact_nickname
                 obj.need_redraw = True
 
-            if obj.old_show == obj.new_show and obj.contact.status == \
-            obj.status and obj.contact.priority == obj.prio and \
-            obj.contact.idle_time == obj.idle_time: # no change
-                return True
+            elif obj.old_show != obj.new_show or obj.contact.status != \
+            obj.status:
+                obj.need_redraw = True
         else:
             obj.contact = app.contacts.get_first_contact_from_jid(account,
                 jid)
diff --git a/gajim/roster_window.py b/gajim/roster_window.py
index 20d649cbb706e315cc59c6e6b3943c0bf2bccacc..4eea5e3ccc3dc21d352f625f6c794dea0a7c1ac3 100644
--- a/gajim/roster_window.py
+++ b/gajim/roster_window.py
@@ -2574,7 +2574,7 @@ class RosterWindow:
             self.draw_contact(jid, account)
             self.draw_group(_('Transports'), account)
 
-        if obj.contact:
+        if obj.contact and obj.need_redraw:
             self.chg_contact_status(obj.contact, obj.show, obj.status, account)
 
         if obj.popup: