I got an emacs abort at the following place in handle_one_xevent (xterm.c): ... /* If not using XIM/XIC, and a compose sequence is in progress, we break here. Otherwise, chars_matched is always 0. */ if (compose_status.chars_matched > 0 && nbytes == 0) break; orig_keysym = keysym; if (numchars > 1) { Lisp_Object c; /* First deal with keysyms which have defined translations to characters. */ if (keysym >= 32 && keysym < 128) ... else abort (); } else ====> abort (); ... I don't understand this code; can someone explain why numchars has to be > 1? I've attached a bit of a gdb session, though it probably isn't very helpful... Thanks, -Miles