In article , bojohan+news@dd.chalmers.se (Johan Bockg$(D+)(Brd) writes: > Your change replaced make_symbol with Fmake_symbol (and intern with > Fintern), and make_symbol does > Fmake_symbol ((!NILP (Vpurify_flag) > ? make_pure_string (str, len, len, 0) > : make_string (str, len))); > In the make_symbol/Fmake_symbol pair of functions, the Vpurify_flag > check is in the former (so is not done after the change); but in the > intern/Fintern pair it is in the latter. Isn't this the problem? Ah! Perhaps. But, I don't understand the reason of calling make_pure_string always with the last arg multibyte as 0. Richard, don't you remember anything? It seems that this part was lastly modified by you about 10 years ago.