+++ /dev/null
---- glib-2.6.1/glib/gconvert.c.orig 2005-01-17 10:13:17.136898976 +0100
-+++ glib-2.6.1/glib/gconvert.c 2005-01-17 10:16:10.262579872 +0100
-@@ -1073,25 +1073,29 @@
- if (p != NULL)
- {
- cache->filename_charsets = g_strsplit (p, ",", 0);
-- cache->is_utf8 = (strcmp (cache->filename_charsets[0], "UTF-8") == 0);
--
-- for (i = 0; cache->filename_charsets[i]; i++)
-- {
-- if (strcmp ("@locale", cache->filename_charsets[i]) == 0)
-- {
-- g_get_charset (&new_charset);
-- g_free (cache->filename_charsets[i]);
-- cache->filename_charsets[i] = g_strdup (new_charset);
-- }
-- }
-+ if (cache->filename_charsets[0] == NULL) {
-+ p = NULL;
-+ } else {
-+ cache->is_utf8 = (strcmp (cache->filename_charsets[0], "UTF-8") == 0);
-+
-+ for (i = 0; cache->filename_charsets[i]; i++)
-+ {
-+ if (strcmp ("@locale", cache->filename_charsets[i]) == 0)
-+ {
-+ g_get_charset (&new_charset);
-+ g_free (cache->filename_charsets[i]);
-+ cache->filename_charsets[i] = g_strdup (new_charset);
-+ }
-+ }
-+ }
- }
-- else if (getenv ("G_BROKEN_FILENAMES") != NULL)
-+ if (p == NULL && getenv ("G_BROKEN_FILENAMES") != NULL)
- {
- cache->filename_charsets = g_new0 (gchar *, 2);
- cache->is_utf8 = g_get_charset (&new_charset);
- cache->filename_charsets[0] = g_strdup (new_charset);
- }
-- else
-+ else if (p == NULL)
- {
- cache->filename_charsets = g_new0 (gchar *, 3);
- cache->is_utf8 = TRUE;