diff -ru vcl.foo/source/glyphs/gcach_ftyp.cxx vcl/source/glyphs/gcach_ftyp.cxx --- vcl.foo/source/glyphs/gcach_ftyp.cxx 2008-08-22 10:27:25.000000000 +0100 +++ vcl/source/glyphs/gcach_ftyp.cxx 2008-08-22 10:33:49.000000000 +0100 @@ -1221,7 +1221,17 @@ nGlyphIndex = FT_Get_Char_Index( maFaceFT, aChar | 0xF000 ); // Finally try the postscript name table if (!nGlyphIndex) + { + FT_CharMap hOrig = maFaceFT->charmap; nGlyphIndex = psp::PrintFontManager::get().FreeTypeCharIndex( maFaceFT, aChar ); + if (hOrig != maFaceFT->charmap) + { + //#i88376# FcFreeTypeCharIndex may change the Charmap without resetting + //it back to the original, and without any hints in the API + //that it does this + FT_Set_Charmap( maFaceFT, hOrig ); + } + } } mpFontInfo->CacheGlyphIndex( aChar, nGlyphIndex ); }