diff --git a/src/common/config.py b/src/common/config.py
index 36864eb44b72156b19f37bc1fdd47af1bcf1afe7..35c312775b8d063e6bbb36d9eeb357625d42c496 100644
--- a/src/common/config.py
+++ b/src/common/config.py
@@ -213,6 +213,18 @@ class Config:
             'roster_avatar_height': [opt_int, 32],
             'tooltip_avatar_width': [opt_int, 125],
             'tooltip_avatar_height': [opt_int, 125],
+            'tooltip_status_online_color': [opt_color, '#73D216'],
+            'tooltip_status_free_for_chat_color': [opt_color, '#3465A4'],
+            'tooltip_status_away_color': [opt_color, '#EDD400'],
+            'tooltip_status_busy_color': [opt_color, '#F57900'],
+            'tooltip_status_na_color': [opt_color, '#CC0000'],
+            'tooltip_status_offline_color': [opt_color, '#555753'],
+            'tooltip_affiliation_none_color': [opt_color, '#555753'],
+            'tooltip_affiliation_member_color': [opt_color, '#73D216'],
+            'tooltip_affiliation_administrator_color': [opt_color, '#F57900'],
+            'tooltip_affiliation_owner_color': [opt_color, '#CC0000'],
+            'tooltip_account_name_color': [opt_color, '#888A85'],
+            'tooltip_idle_color': [opt_color, '#888A85'],
             'vcard_avatar_width': [opt_int, 200],
             'vcard_avatar_height': [opt_int, 200],
             'notification_preview_message': [opt_bool, True, _('Preview new messages in notification popup?')],
diff --git a/src/tooltips.py b/src/tooltips.py
index 7adf9fa373470d209b15bfb76346bd5aad85dd68..109d7b4c891dd5701566d20284f1246ef1c9d1c5 100644
--- a/src/tooltips.py
+++ b/src/tooltips.py
@@ -181,18 +181,21 @@ class BaseTooltip:
         semantics. Color palette is the Tango.
         """
         formatted = "<span foreground='%s'>%s</span>"
+        color = None
         if status.startswith(Q_("?user status:Available")):
-            status = formatted % ('#73D216', status)
+            color = gajim.config.get('tooltip_status_online_color')
         elif status.startswith(_("Free for Chat")):
-            status = formatted % ('#3465A4', status)
+            color = gajim.config.get('tooltip_status_free_for_chat_color')
         elif status.startswith(_("Away")):
-            status = formatted % ('#EDD400', status)
+            color = gajim.config.get('tooltip_status_away_color')
         elif status.startswith(_("Busy")):
-            status = formatted % ('#F57900', status)
+            color = gajim.config.get('tooltip_status_busy_color')
         elif status.startswith(_("Not Available")):
-            status = formatted % ('#CC0000', status)
+            color = gajim.config.get('tooltip_status_na_color')
         elif status.startswith(_("Offline")):
-            status = formatted % ('#555753', status)
+            color = gajim.config.get('tooltip_status_offline_color')
+        if color:
+            status = formatted % (color, status)
         return status
 
     @staticmethod
@@ -202,14 +205,17 @@ class BaseTooltip:
         it's semantics. Color palette is the Tango.
         """
         formatted = "<span foreground='%s'>%s</span>"
+        color = None
         if affiliation.startswith(Q_("?Group Chat Contact Affiliation:None")):
-            affiliation = formatted % ('#555753', affiliation)
+            color = gajim.conig.get('tooltip_affiliation_none_color')
         elif affiliation.startswith(_("Member")):
-            affiliation = formatted % ('#73D216', affiliation)
+            color = gajim.conig.get('tooltip_affiliation_member_color')
         elif affiliation.startswith(_("Administrator")):
-            affiliation = formatted % ('#F57900', affiliation)
+            color = gajim.conig.get('tooltip_affiliation_administrator_color')
         elif affiliation.startswith(_("Owner")):
-            affiliation = formatted % ('#CC0000', affiliation)
+            color = gajim.conig.get('tooltip_affiliation_owner_color')
+        if color:
+            affiliation = formatted % (color, affiliation)
         return affiliation
 
 class StatusTable:
@@ -493,9 +499,9 @@ class RosterTooltip(NotificationAreaTooltip):
                 gobject.markup_escape_text(prim_contact.get_shown_name())\
                 + '</span>'
         if gajim.config.get('mergeaccounts'):
-          name_markup += u" <span foreground='#888A85'>(" + \
-                gobject.markup_escape_text(prim_contact.account.name) \
-                + ')</span>'
+            name_markup += u" <span foreground='%s'>(%s)</span>" % (
+                gajim.config.get('tooltip_account_name_color'),
+                gobject.markup_escape_text(prim_contact.account.name))
 
         if self.account and helpers.jid_is_blocked(self.account,
         prim_contact.jid):
@@ -528,7 +534,8 @@ class RosterTooltip(NotificationAreaTooltip):
                 iconset = gajim.config.get('iconset')
                 if not iconset:
                     iconset = 'dcraven'
-                file_path = os.path.join(helpers.get_iconset_path(iconset), '16x16')
+                file_path = os.path.join(helpers.get_iconset_path(iconset),
+                    '16x16')
 
             contact_keys = sorted(contacts_dict.keys())
             contact_keys.reverse()
@@ -641,7 +648,9 @@ class RosterTooltip(NotificationAreaTooltip):
             # is no meaningful difference between last activity time and
             # current time.
             if diff.days > 0 or diff.seconds > 0:
-                cs = "<span foreground='#888A85'>%s</span>"
+                cs = "<span foreground='%s'>" % gajim.config.get(
+                    'tooltip_idle_color')
+                cs += '%s</span>'
                 properties.append((str(), None))
                 properties.append(((cs % _("Idle since %s")) % formatted, None))
                 properties.append(((cs % _("Idle for %s")) % str(diff), None))