--- a/gtk/updateiconcache.c 2019-04-29 02:43:13.876445467 -0400 +++ b/gtk/updateiconcache.c 2019-04-29 02:47:17.913457103 -0400 @@ -600,6 +600,7 @@ { GHashTable *dir_hash; GDir *dir; + GList *list = NULL, *iterator = NULL; const gchar *name; gchar *dir_path; gboolean dir_added = FALSE; @@ -617,6 +618,14 @@ while ((name = g_dir_read_name (dir))) { + list = g_list_prepend (list, g_strdup (name)); + } + + list = g_list_sort (list, (GCompareFunc) strcmp); + for (iterator = list; iterator; iterator = iterator->next) + { + name = iterator->data; + gchar *path; gboolean retval; int flags = 0; @@ -695,6 +704,7 @@ g_free (path); } + g_list_free_full (list, g_free); g_dir_close (dir); /* Move dir into the big file hash */