Index: pango/pango/pangofc-fontmap.c
===================================================================
RCS file: /cvs/gnome/pango/pango/pangofc-fontmap.c,v
retrieving revision 1.35
diff -u -r1.35 pangofc-fontmap.c
--- pango/pango/pangofc-fontmap.c	14 Jun 2005 17:41:17 -0000	1.35
+++ pango/pango/pangofc-fontmap.c	14 Jul 2005 06:35:16 -0000
@@ -496,6 +496,11 @@
   int i;
   int count;
 
+  char *l = getenv("LANG");
+  if(!l) l = getenv("LC_MESSAGES");
+  if(!l) l = getenv("LC_ALL");
+  *(l+2) = 0;
+
   if (priv->closed)
     {
       if (families)
@@ -508,7 +513,7 @@
 
   if (priv->n_families < 0)
     {
-      FcObjectSet *os = FcObjectSetBuild (FC_FAMILY, FC_SPACING, NULL);
+      FcObjectSet *os = FcObjectSetBuild (FC_FAMILY, FC_FAMILYLANG, FC_SPACING, NULL);
       FcPattern *pat = FcPatternCreate ();
       /* use hash table to avoid duplicate listings if different faces in
        * the same family have different spacing values */
@@ -526,10 +531,21 @@
       for (i = 0; i < fontset->nfont; i++)
 	{
 	  FcChar8 *s;
+	  FcChar8 *lang;
+	  int lang_idx = 0;
+	  int proper_idx = 0;
 	  FcResult res;
           int spacing;
+
+	  while(FcPatternGetString (fontset->fonts[i], FC_FAMILYLANG, lang_idx, (FcChar8 **) &lang) == FcResultMatch){
+			  if(!FcStrCmp(l, lang)){
+					  proper_idx = lang_idx;
+					  break;
+			  }
+			  lang_idx++;
+	  }
 	  
-	  res = FcPatternGetString (fontset->fonts[i], FC_FAMILY, 0, (FcChar8 **) &s);
+	  res = FcPatternGetString (fontset->fonts[i], FC_FAMILY, proper_idx, (FcChar8 **) &s);
 	  g_assert (res == FcResultMatch);
 
           res = FcPatternGetInteger (fontset->fonts[i], FC_SPACING, 0, &spacing);
