Hello list, I've found what it looks like a bug in XML handling in ConTeXt. Try this: \startbuffer[test] <text> <!-- with following semicolon: ampersand and semicolon are eaten --> <p>Me & my friends; you & your friends.</p> <!-- without following semicolon: everything ok --> <p>Me & my friends. You & your friends.</p> <!-- way around: place a comment after the ampersand --> <p>Me &<!-- --> my friends; you & your friends.</p> </text> \stopbuffer \startxmlsetups xml:somesetups \xmlsetsetup{#1}{text}{xml:text} \xmlsetsetup{#1}{p}{xml:p} \stopxmlsetups \xmlregistersetup{xml:somesetups} \startxmlsetups xml:text \xmlflush{#1} \stopxmlsetups \startxmlsetups xml:p \xmlflush{#1}\par\blank[line] \stopxmlsetups \starttext \xmlprocessbuffer{main}{test}{} \stoptext In the first case, the ampersand and the following semicolon are eaten up. I've found a way around, until the bug is fixed (if it's a bug and not my limited knowledge of ConTeXt): put a XML comment after the ampersand, and everything works as expected.