Index: glib/gconvert.c
===================================================================
--- glib/gconvert.c	(revision 7754)
+++ glib/gconvert.c	(working copy)
@@ -68,7 +68,12 @@ try_conversion (const char *to_codeset,
 		const char *from_codeset,
 		iconv_t    *cd)
 {
-  *cd = iconv_open (to_codeset, from_codeset);
+  char *translit_codeset = g_strdup_printf ("%s//translit", to_codeset);
+  *cd = iconv_open (translit_codeset, from_codeset);
+  g_free (translit_codeset);
+
+  if (*cd == (iconv_t)-1 && errno == EINVAL)
+    *cd = iconv_open (to_codeset, from_codeset);
 
   if (*cd == (iconv_t)-1 && errno == EINVAL)
     return FALSE;
