diff --git a/data/org.gnome.Empathy.gschema.xml.in b/data/org.gnome.Empathy.gschema.xml.in
index 02020e7..f16c65f 100644
--- a/data/org.gnome.Empathy.gschema.xml.in
+++ b/data/org.gnome.Empathy.gschema.xml.in
@@ -42,6 +42,11 @@
       <_summary>Show offline contacts</_summary>
       <_description>Whether to show contacts that are offline in the contact list.</_description>
     </key>
+    <key type="b" name="show-groups">
+      <default>true</default>
+      <summary>Show groups</summary>
+      <description>Whether to show contacts in groups in the contact list.</description>
+    </key>
     <key name="show-avatars" type="b">
       <default>true</default>
       <_summary>Show avatars</_summary>
diff --git a/libempathy/empathy-gsettings.h b/libempathy/empathy-gsettings.h
index ad55a94..6206a54 100644
--- a/libempathy/empathy-gsettings.h
+++ b/libempathy/empathy-gsettings.h
@@ -77,6 +77,7 @@ G_BEGIN_DECLS
 #define EMPATHY_PREFS_UI_COMPACT_CONTACT_LIST      "compact-contact-list"
 #define EMPATHY_PREFS_UI_CHAT_WINDOW_PANED_POS     "chat-window-paned-pos"
 #define EMPATHY_PREFS_UI_SHOW_OFFLINE              "show-offline"
+#define EMPATHY_PREFS_UI_SHOW_GROUPS               "show-groups"
 
 #define EMPATHY_PREFS_CONTACTS_SCHEMA EMPATHY_PREFS_SCHEMA ".contacts"
 #define EMPATHY_PREFS_CONTACTS_SORT_CRITERIUM      "sort-criterium"
diff --git a/src/empathy-roster-window.c b/src/empathy-roster-window.c
index 079ac51..5493472 100644
--- a/src/empathy-roster-window.c
+++ b/src/empathy-roster-window.c
@@ -1610,6 +1610,18 @@ roster_window_view_contacts_list_size_cb (GtkRadioAction *action,
   g_object_unref (gsettings_ui);
 }
 
+static void roster_window_notify_show_groups_cb (GSettings *gsettings,
+    const gchar *key,
+    EmpathyRosterWindow *self)
+{
+  gboolean value;
+
+  value = g_settings_get_boolean (gsettings, EMPATHY_PREFS_UI_SHOW_GROUPS);
+
+  empathy_individual_store_set_show_groups (self->priv->individual_store,
+      value);
+}
+
 static void roster_window_notify_show_protocols_cb (GSettings *gsettings,
     const gchar *key,
     EmpathyRosterWindow *self)
@@ -2658,6 +2670,14 @@ empathy_roster_window_init (EmpathyRosterWindow *self)
       G_CALLBACK (roster_window_notify_show_offline_cb), show_offline_widget);
 
   gtk_toggle_action_set_active (show_offline_widget, show_offline);
+  
+  /* Show contact groups ? */
+  g_signal_connect (self->priv->gsettings_ui,
+      "changed::" EMPATHY_PREFS_UI_SHOW_GROUPS,
+      G_CALLBACK (roster_window_notify_show_groups_cb), self);
+  
+  roster_window_notify_show_groups_cb (self->priv->gsettings_ui,
+      EMPATHY_PREFS_UI_SHOW_GROUPS, self);
 
   /* Show protocol ? */
   g_signal_connect (self->priv->gsettings_ui,
