Hello, This is my first post to this mailing list, so I'm sorry. LaTeX has some `built in' definitions of \lccode, \uccode, \sfcode values for symbols with codes above 128 (which are used in Russian language). But these settings do not conform to the common Russian encodings (and it is evident that these `frozen' values can not be in agreement with all possible languages ;-) ). Next, it is written in cfgguide.tex, that the values of above mentioned registers should not be changed e.g. in a hyphenation files of a particular languages. So, I think, that the correct way to solve this problem is to set the values of \lccode, \uccode, \sfcode and \mathcode, in a macros which switches to a language (\selectlanguage in Babel). Are there some ready means to preserve the `language environment' before switching to another language and to restore it after changing back (or to some third language)? Is it a normal practice to `tune' \lccode, \uccode, \sfcode and \mathcode values in a language-switching mechanism? Here I see another problem. Consider some multilingual phrase and let's assume that we need to do \uppercase{} or \lowercase{} of this phrase. If the languages contained in this phrase have a conflicting \lccode and \uccode values, than the result of \uppercase{} will be incorrect. However, some time ago I solved this problem by redefining TeX's builtins \uppercase and \lowercase so that these new macros split the multilingual phrase into one-language pieces and do \uppercase of these pieces, and then merge them again. May be, all this was already solved? -- With best regards, Vladimir.