Hi Hans, I got yesterday a bug report for my letter module if the \startletter command takes no arguments. The following example show the problem without the module. \def\startletter {\dosingleempty\dostartletter} \def\dostartletter[#1]% {\dostartbuffer[letter][startletter][stopletter]} \starttext % This did work \startletter Text \stopletter \getbuffer[letter] % But this did create a error message from TeX \startletter Text \stopletter \getbuffer[letter] \stopletter One solution for the second text can be solved when I add a \relax after the \startletter command but I wanted a better solution. Because TeX mentions \flushbufferline in error message I tried to modify the macro and came to the following solution. %\def\flushbufferline#1% \long\def\flushbufferline#1% {\iftmpblockstarted \ifsegmentatebuffer \ifemptybufferline \immediate\write\tmpblocks{\string\stopbufferparagraph }% \immediate\write\tmpblocks{\string\startbufferparagraph}% \else \immediate\write\tmpblocks{#1}% \fi \else \immediate\write\tmpblocks{#1}% \fi \else \doifsomething{#1} {\tmpblockstartedtrue %\immediate\write\tmpblocks{\string#1}}% \immediate\write\tmpblocks{#1}}% \fi} The macro has to be defined as long and the \string in the \write command has to be removed. I made a few short tests and saw no negative sideeffects from my changes. Another problem could arise with a few commands in the letter environment if no empty line is written after \startletter. The following result also in a error message. \startletter \dorecurse{2}{\input knuth\par} \stopbuffer With another modification of \flushbufferline also this example could work, my final patch was now: \long\def\flushbufferline#1% {\iftmpblockstarted \ifsegmentatebuffer \ifemptybufferline \immediate\write\tmpblocks{\string\stopbufferparagraph }% \immediate\write\tmpblocks{\string\startbufferparagraph}% \else \immediate\write\tmpblocks{#1}% \fi \else \immediate\write\tmpblocks{#1}% \fi \else \convertargument#1\to\ascii %\doifsomething{#1} \doifsomething\ascii {\tmpblockstartedtrue %\immediate\write\tmpblocks{\string#1}}% %\immediate\write\tmpblocks{#1}}% \immediate\write\tmpblocks{\ascii}}% \fi} Could my seond or at least my first patched version of the \flushbufferline macro integrated into core-buf.mkii because I won't force users of my letter module to put a \relax after \startletter only because they use MkII. Greetings Wolfgang