diff --git a/src/rugby-list-store.c b/src/rugby-list-store.c
index b84753d2f742a4b3a944481868fa86461fb890d0..f1ac182df80f0263781d827cb19d306a5b6a07d4 100644
--- a/src/rugby-list-store.c
+++ b/src/rugby-list-store.c
@@ -59,15 +59,9 @@ sort_func (gconstpointer a,
         return btries - atries;
 }
 
-// Callbacks
-
 static void
-notify_score_cb (GObject    *gobject,
-                 GParamSpec *pspec,
-                 gpointer    user_data)
+on_score_changed (RugbyListStore *self)
 {
-    RugbyListStore *self = RUGBY_LIST_STORE (user_data);
-
     int max_tries = self->score / TRY_POINTS;
     int max_utries = self->score / UTRY_POINTS;
 
@@ -129,9 +123,9 @@ rugby_list_store_get_item (GListModel *list,
 static void
 rugby_list_store_list_model_iface_init (GListModelInterface *iface)
 {
-      iface->get_item_type = rugby_list_store_get_item_type;
-      iface->get_n_items = rugby_list_store_get_n_items;
-      iface->get_item = rugby_list_store_get_item;
+    iface->get_item_type = rugby_list_store_get_item_type;
+    iface->get_n_items = rugby_list_store_get_n_items;
+    iface->get_item = rugby_list_store_get_item;
 }
 
 // Class functions
@@ -207,9 +201,6 @@ rugby_list_store_init (RugbyListStore *self)
 {
     self->score = 0;
     self->items = g_ptr_array_new_with_free_func (g_object_unref);
-
-    g_signal_connect (self, "notify::score",
-                      G_CALLBACK (notify_score_cb), self);
 }
 
 // Public functions
@@ -231,6 +222,7 @@ rugby_list_store_set_score (RugbyListStore *self,
     if (score != self->score)
     {
         self->score = score;
+        on_score_changed (self);
         g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_SCORE]);
     }
 }