Version 3.9 fixes lots of bugs and this list is selective. * \select@language did not set \languagename. This meant the language in force when auxiliary files were loaded was the one used in, for example, shorthands -- if the language was german, a \select@language{spanish} had no effect. * \foreignlanguage and otherlanguage* messed up \extras. Scripts, encodings and many other things were not switched correctly. * The :ENC mechanism for hyphenation patterns used the encoding of the _previous_ language, not that of the language being selected. * ' (with activeacute) had the original value when writing to an auxiliary file, and things like an infinite loop could happen. It worked incorrectly with ^ (if activated) and also if deactivated. * Active chars where not reset at the end of language options, and that lead to incompatibilities between languages. * \textormath raised and error with a conditional. * \aliasshorthand didn't work (or only in a few and very specific cases). * \l@english was defined incorrectly (using \let instead of \chardef). * ldf files not bundled with babel were not recognized when called as global options.