diff --git a/src/config.py b/src/config.py
index 6669d2291009f7511bc793d0e5363c9ea8951830..5f28134f8b75b0c5c5886068ba5220f8050ecdd5 100644
--- a/src/config.py
+++ b/src/config.py
@@ -769,10 +769,18 @@ class PreferencesWindow:
 		active = widget.get_active()
 		if active == 0:
 			gajim.config.set('trayicon', 'never')
+			gajim.interface.systray_enabled = False
+			gajim.interface.systray.hide_icon()
 		elif active == 1:
 			gajim.config.set('trayicon', 'on_event')
+			gajim.interface.systray_enabled = True
+			gajim.interface.systray.show_icon()
+			gajim.interface.systray.set_img()
 		else:
 			gajim.config.set('trayicon', 'always')
+			gajim.interface.systray_enabled = True
+			gajim.interface.systray.show_icon()
+			gajim.interface.systray.set_img()
 
 	def on_advanced_notifications_button_clicked(self, widget):
 		dialogs.AdvancedNotificationsWindow()