find(): Application of (slightly modified) SF patch #101928 by Ulf
Betlehem, verified by Peter Funk.  Fixes preservation of language
search order lost due to use of dictionary keys instead of a list.
Closes SF bug #116964.
diff --git a/Lib/gettext.py b/Lib/gettext.py
index 578490f..9bebb11 100644
--- a/Lib/gettext.py
+++ b/Lib/gettext.py
@@ -208,13 +208,13 @@
         if 'C' not in languages:
             languages.append('C')
     # now normalize and expand the languages
-    langdict = {}
+    nelangs = []
     for lang in languages:
         for nelang in _expand_lang(lang):
-            langdict[nelang] = nelang
-    languages = langdict.keys()
+            if nelang not in nelangs:
+                nelangs.append(nelang)
     # select a language
-    for lang in languages:
+    for lang in nelangs:
         if lang == 'C':
             break
         mofile = os.path.join(localedir, lang, 'LC_MESSAGES', '%s.mo' % domain)