Is it possible that the new \ifxmlselfempty has reversed its outcome? Or did I something wrong in this MWE? Here an MWE. yours sincerely dr. Hans van der Meer  \startbuffer[test] <what> <emptynode value="!empty node!"/> <notemptynode>!not empty node!</notemptynode> </what> \stopbuffer \startxmlsetups xml:mysetups \xmlsetsetup{\xmldocument}{something|emptynode|notemptynode}{xml:*} \stopxmlsetups \xmlregistersetup{xml:mysetups} \startxmlsetups xml:emptynode node=\xmltag{#1}:\crlf ifxmlselfempty-else-fi:\space \ifxmlselfempty{#1} attribute = \xmlatt{#1}{value} \else content = \xmlflush{#1} \fi \crlf ifxmlselfempty-else-fi reversed:\space \ifxmlselfempty{#1} content = \xmlflush{#1} \else attribute = \xmlatt{#1}{value} \fi \blank \stopxmlsetups \startxmlsetups xml:notemptynode node=\xmltag{#1}:\crlf ifxmlselfempty-else-fi:\space \ifxmlselfempty{#1} attribute = \xmlatt{#1}{value} \else content = \xmlflush{#1} \fi \crlf ifxmlselfempty-else-fi reversed:\space \ifxmlselfempty{#1} content = \xmlflush{#1} \else attribute = \xmlatt{#1}{value} \fi \blank \stopxmlsetups \startxmlsetups xml:something \xmlall{#1}{./emptynode}\blank \xmlall{#1}{./notemptynode}\blank \stopxmlsetups \starttext \ConTeXt\ \contextversion\blank \xmlprocessbuffer{main}{test}{} \stoptext