Hi, the following program barfs and gets confused: \endlinechar128 \relax \relax \end This is luaTeX, Version 3.141592-snapshot-2007040210 (Web2C 7.5.6) (INITEX) (/tmp/junk.tex ! Buffer contains an invalid utf-8 sequence. l.2 \ relax ? ! Undefined control sequence. l.2 \rel ax ? ! Buffer contains an invalid utf-8 sequence. l.2 \relax ? ! Buffer contains an invalid utf-8 sequence. l.3 \ relax ? ! Undefined control sequence. l.3 \rel ax ? ! Buffer contains an invalid utf-8 sequence. l.3 \relax ? ! Buffer contains an invalid utf-8 sequence. l.4 \ end ? ! Undefined control sequence. l.4 \e nd ? ! Buffer contains an invalid utf-8 sequence. l.4 \end ? ) * ! Emergency stop. <*> /tmp/junk.tex No pages of output. Transcript written on junk.log. Maybe it would be better if buffer was an array of ASCII rather than packedASCII, namely encoded in UTF21 (or whatever) internally rather than UTF8. As it stands, dealing with \endlinechar and the end of buffer will not exactly be a lot of fun. Or one will need a function that is going to place a single character into buffer, and one needs to take care that at all times at least 4 (rather than one) characters remain free whenever \endlinechar has not yet been appended. -- David Kastrup