diff --git a/clients_icons/clients_icons.py b/clients_icons/clients_icons.py
index 9fc251d7ec47c4a005a24456a5b94d3b0ddf2d00..34672573cb9f874896d6f9c09cec21d611f4e77d 100644
--- a/clients_icons/clients_icons.py
+++ b/clients_icons/clients_icons.py
@@ -312,6 +312,10 @@ class ClientsIconsPlugin(GajimPlugin):
                 if client in contact.resource.lower():
                     caps = libpurple_clients[client]
 
+        caps_from_jid = self.check_jid(contact.jid)
+        if caps_from_jid:
+            caps = caps_from_jid
+
         caps_ = caps.split('#')[0].split()
         if caps_:
             client_icon = clients.get(caps_[0].split()[0], (None,))[0]
@@ -337,6 +341,20 @@ class ClientsIconsPlugin(GajimPlugin):
     vcard_table):
         pass
 
+    def check_jid(self, jid):
+        caps = None
+        if 'facebook.com' in jid and self.config['show_facebook']:
+            caps = 'facebook.com'
+        elif '@vk.com' in jid and self.config['show_facebook']:
+            caps = 'vk.com'
+        elif jid == 'juick@juick.com':
+            caps = 'http://juick.com/caps'
+        elif jid == 'psto@psto.net':
+            caps = 'psto@psto.net'
+        elif jid == 'rss@isida-bot.com':
+            caps = 'rss@isida-bot.com'
+        return caps
+
     @log_calls('ClientsIconsPlugin')
     def connect_with_roster_draw_contact(self, roster, jid, account, contact):
         if not self.active:
@@ -349,16 +367,8 @@ class ClientsIconsPlugin(GajimPlugin):
             return
         if roster.model[child_iters[0]][self.renderer_num] is None:
             caps = contact.client_caps._node
-            if 'facebook.com' in jid and self.config['show_facebook']:
-                caps = 'facebook.com'
-            elif '@vk.com' in jid and self.config['show_facebook']:
-                caps = 'vk.com'
-            elif jid == 'juick@juick.com':
-                caps = 'http://juick.com/caps'
-            elif jid == 'psto@psto.net':
-                caps = 'psto@psto.net'
-            elif jid == 'rss@isida-bot.com':
-                caps = 'rss@isida-bot.com'
+            if not caps:
+                caps = self.check_jid(jid)
             self.set_icon(roster.model, child_iters[0], self.renderer_num,
                 caps)
 
@@ -518,15 +528,11 @@ class ClientsIconsPlugin(GajimPlugin):
                     for client in libpurple_clients:
                         if client in contact.resource.lower():
                             caps = libpurple_clients[client]
-        if 'facebook.com' in iq_obj.jid and self.config['show_facebook']:
-            caps = 'facebook.com'
-        if not caps:
-            if iq_obj.jid == 'juick@juick.com':
-                caps = 'http://juick.com/caps'
-            elif '@vk.com' in iq_obj.jid and self.config['show_facebook']:
-                caps = 'vk.com'
-            elif 'psto@psto.net' in iq_obj.jid:
-                caps = 'psto@psto.net'
+
+        caps_from_jid = self.check_jid(iq_obj.jid)
+        if caps_from_jid:
+            caps = caps_from_jid
+
         self.set_icon(roster.model, iter_, self.renderer_num, caps)
 
     def gc_presence_received(self, iq_obj):