Hi Hans, the \orelse branch can't be used because \c_symb_found still has the same value. Wolfgang \permanent\protected\def\doifelsesymboldefined#1% {\begingroup \edef\currentsymbol{#1}% \let\symb_fetch\symb_fetch_first \setfalse\c_symb_found \the\t_symb_setups \ifconditional\c_symb_found \endgroup\expandafter\firstoftwoarguments - \orelse\ifconditional\c_symb_found - \symb_fetch_second\currentsymbol - \endgroup\expandafter\firstoftwoarguments - \else - \symb_fetch_second\currentsymbol - \endgroup\expandafter\secondoftwoarguments + \else + \symb_fetch_second\currentsymbol + \ifconditional\c_symb_found + \endgroup\doubleexpandafter\firstoftwoarguments + \else + \endgroup\doubleexpandafter\secondoftwoarguments + \fi \fi}