diff --git a/src/shell-app-system.c b/src/shell-app-system.c
index c41b4da..0b2745f 100644
--- a/src/shell-app-system.c
+++ b/src/shell-app-system.c
@@ -109,6 +109,7 @@ scan_startup_wm_class_to_id (ShellAppSystem *self)
   g_list_free_full (apps, g_object_unref);
 }
 
+#if 0
 static gboolean
 app_is_stale (ShellApp *app)
 {
@@ -134,16 +135,30 @@ stale_app_remove_func (gpointer key,
 {
   return app_is_stale (value);
 }
+#endif
 
 static void
 installed_changed (GAppInfoMonitor *monitor,
                    gpointer         user_data)
 {
+  GHashTable *table = NULL;
   ShellAppSystem *self = user_data;
 
   scan_startup_wm_class_to_id (self);
 
-  g_hash_table_foreach_remove (self->priv->id_to_app, stale_app_remove_func, NULL);
+  /* GO NUCULAR */
+  table = self->priv->id_to_app;
+  self->priv->id_to_app = NULL;
+
+  g_hash_table_destroy (self->priv->id_to_app);
+  table = g_hash_table_new_full (g_str_hash, g_str_equal,
+                                 NULL,
+                                 (GDestroyNotify)g_object_unref);
+  self->priv->id_to_app = table;
 
   g_signal_emit (self, signals[INSTALLED_CHANGED], 0, NULL);
 }
