Jan Djärv writes: >> + if (cf != f && FRAME_LIVE_P (f) && FRAME_X_P (cf) >> + && !strcmp (FRAME_XIC_BASE_FONTNAME (cf), base_fontname)) >> + return FRAME_XIC_FONTSET (cf); >> + } > > You must check that the frames sharing the fontset is on the same > display. >> + if (cf != f && FRAME_LIVE_P (f) && FRAME_X_P (cf) >> + && FRAME_XIC_FONTSET (cf) == FRAME_XIC_FONTSET (f)) >> + return; > > And here also. > > You did not include diffs for xterm.c and xterm.h. It looks like I messed up something while preparing my email. How embarassing! Here is a revised patch that incorporates your points, adds the missing patches and fixes a syntax error that somehow crept into create_frame_xic. 2004-10-11 Károly Lőrentey * src/xterm.h (x_output): New member `xic_base_fontname'. (FRAME_XIC_BASE_FONTNAME): New macro. (xic_delete_xfontset): Declare. * src/xfns.c (xic_create_xfontset): Share fontsets between frames based on base_fontname. (create_frame_xic): Set the frame's xic_base_fontname. (xic_delete_xfontset): New function. (free_frame_xic): Use it. Free xic_base_fontname. (xic_set_xfontset): Ditto. * src/xterm.c (xim_destroy_callback): Ditto.