diff --git a/src/fclang.c b/src/fclang.c
index 6a3b7b5..ab7ae53 100644
--- a/src/fclang.c
+++ b/src/fclang.c
@@ -551,20 +551,27 @@
 FcBool
 FcNameUnparseLangSet (FcStrBuf *buf, const FcLangSet *ls)
 {
-    int		i;
+    int		i, bit;
+    FcChar32	bits;
     FcBool	first = FcTrue;
 
-    for (i = 0; i < NUM_LANG_CHAR_SET; i++)
-	if (FcLangSetBitGet (ls, i))
-	    {
-		if (!first)
-		    if (!FcStrBufChar (buf, '|'))
+    for (i = 0; i < NUM_LANG_SET_MAP; i++)
+    {
+	if ((bits = ls->map[i]))
+	{
+	    for (bit = 0; bit <= 31; bit++)
+		if (bits & (1 << bit))
+		{
+		    int id = (i << 5) | bit;
+		    if (!first)
+			if (!FcStrBufChar (buf, '|'))
+			    return FcFalse;
+		    if (!FcStrBufString (buf, fcLangCharSets[fcLangCharSetIndicesInv[id]].lang))
 			return FcFalse;
-		if (!FcStrBufString (buf, fcLangCharSets[i].lang))
-		    return FcFalse;
-		first = FcFalse;
-	    }
-
+		    first = FcFalse;
+		}
+	}
+    }
     if (ls->extra)
     {
 	FcStrList   *list = FcStrListCreate (ls->extra);
