Hi, I had a quick glance at Christoph's patch. An excerpt:
+ /* We got a default font for a not found glyph. */ + if(!charexists && frc[i].flags == frcflags \ + && unicodep == unicodep) { I invite you to contemplate that last line. In case Christoph needs help identifying the problem, here's a patch: diff --git a/st.c b/st.c index e27daf0..6397851 100644 --- a/st.c +++ b/st.c @@ -3398,7 +3398,7 @@ xdraws(char *s, Glyph base, int x, int y, int charlen, int bytelen) { break; /* We got a default font for a not found glyph. */ if(!charexists && frc[i].flags == frcflags \ - && unicodep == unicodep) { + && frc[i].unicodep == unicodep) { break; } } The bug, which is reproducible thanks to Eric's example data, seems to be fixed by this change. I note that, had Eric not taken the time to post details of this bug to the mailing list, we wouldn't have known about it, and the bug would have lingered on. But apparently that's preferable. See no evil, hear no evil! cls