diff --git a/src/statusicon.py b/src/statusicon.py
index 2cd3e61becf4014857a065205e8eaef685d5779c..6950fd41c67435303cf487b92b9e191ea6efdb3a 100644
--- a/src/statusicon.py
+++ b/src/statusicon.py
@@ -86,12 +86,15 @@ class StatusIcon:
     def show_icon(self):
         if not self.status_icon:
             self.status_icon = gtk.StatusIcon()
+            self.statusicon_size = '16'
             self.status_icon.set_property('has-tooltip', True)
             self.status_icon.connect('activate', self.on_status_icon_left_clicked)
             self.status_icon.connect('popup-menu',
                     self.on_status_icon_right_clicked)
             self.status_icon.connect('query-tooltip',
                     self.on_status_icon_query_tooltip)
+            self.status_icon.connect('size-changed',
+                    self.on_status_icon_size_changed)
 
         self.set_img()
         self.status_icon.set_visible(True)
@@ -112,6 +115,16 @@ class StatusIcon:
     def on_status_icon_left_clicked(self, widget):
         self.on_left_click()
 
+    def on_status_icon_size_changed(self, statusicon, size):
+        if size > 31:
+            self.statusicon_size = '32'
+        else:
+            self.statusicon_size = '16'
+        if os.environ.get('KDE_FULL_SESSION') == 'true':
+        # detect KDE session. see #5476
+            self.statusicon_size = '32'
+        self.set_img()
+
     def set_img(self):
         """
         Apart from image, we also update tooltip text here
@@ -123,8 +136,8 @@ class StatusIcon:
         else:
             self.status_icon.set_blinking(False)
 
-        # FIXME: do not always use 16x16 (ask actually used size and use that)
-        image = gajim.interface.jabber_state_images['16'][self.status]
+        image = gajim.interface.jabber_state_images[self.statusicon_size][
+                                                                self.status]
         if image.get_storage_type() == gtk.IMAGE_PIXBUF:
             self.status_icon.set_from_pixbuf(image.get_pixbuf())
         # FIXME: oops they forgot to support GIF animation?