Dear magitians, I discovered this in LaTeX, but ConTeXt behaves the same (plain TeX behaves differently). Can somebody please explain me why this code fails to work? (A workaround is to move \newif on top which I'm willing to do, but I'm still curious.) \starttext \ifx\hbox\undefined \message{invisible to tex} \newif\ifabc \abcfalse \ifabc \message{abc true breaks} \else \message{abc false breaks} \fi \fi \stoptext systems : begin file iftest at line 1 abc false breaks ! Extra \fi. l.7 \fi or abc false breaks ! Extra \fi. system > tex > error on line 7 in file iftest.tex: Extra ... 1 \starttext 2 3 \ifx\hbox\undefined 4 \message{invisible to tex} 5 \newif\ifabc \abcfalse 6 \ifabc \message{abc true breaks} \else \message{abc false breaks} \fi 7 >> \fi 8 9 \stoptext 10 l.7 \fi Mojca