Hi, The function font_matching_entity() in font.c ignores its ATTRS argument. If, in the sequence xfaces.c: realize_x_face() -> font.c: font_load_for_lface() -> font.c: font_find_for_lface the last call fails to find anything, font_matching_entity() will be called, and, as far as I can tell, returns incorrect results. The attached patch causes ATTRS to be used in both the cache check and the call to driver->match(), and allows a better-matching font to be found in the above use case. (The patch also makes a case-insensitive family name comparison in font_find_for_lface() case-sensitive when compiling under HAVE_NS.) -Adrian