diff -uprN freetype2/src/sfnt/ttcmap.c freetype2/src/sfnt/ttcmap.c --- freetype2/src/sfnt/ttcmap.c 2007-06-13 17:05:55.000000000 +0900 +++ freetype2/src/sfnt/ttcmap.c 2007-09-30 20:45:39.000000000 +0900 @@ -2284,6 +2284,20 @@ charmap.encoding = FT_ENCODING_NONE; /* will be filled later */ offset = TT_NEXT_ULONG( p ); + FT_TRACE2(( "found cmap platform_id %u, encoding_id %u\n", + charmap.platform_id, charmap.encoding_id )); + + /* cmap tables with platform_id == Apple Unicode sometimes are + * incomplete in comparison to other tables. + * FIXME: perhaps fallback to this table if no other table exists. + */ + if ( charmap.platform_id == 0 ) /* Apple Unicode */ + { + FT_TRACE2(( "ignoring Apple Unicode encoding\n" )); + continue; + } + + if ( offset && offset <= face->cmap_size - 2 ) { FT_Byte* volatile cmap = table + offset;