Hi, shouldn’t these values be global? \def\strc_constructions_register_yes[#1][#2]% #1=interfaced-settings, #2=optional user data {\begingroup % similar to structure so we might generalize this ... \ifnoconstructioncaption % then why analyze anyway? \endgroup - \let\currentconstructionlistnumber \relax - \let\currentconstructionsynchronize\relax - \let\currentconstructionattribute \relax + \glet\currentconstructionlistnumber \relax + \glet\currentconstructionsynchronize\relax + \glet\currentconstructionattribute \relax \else ... % \writestatus{constructions}{registering \currentconstruction: \number\scratchcounter}% \normalexpanded{% \endgroup - \edef\noexpand\currentconstructionlistentry {\the\scratchcounter}% - \edef\noexpand\currentconstructionattribute {\ctxcommand {setinternalreference("\referenceprefix","\currentconstructionreference",\nextinternalreference,"\interactionparameter\c!focus")}}% - \edef\noexpand\currentconstructionsynchronize{\ctxlatecommand{enhancelist(\the\scratchcounter)}}% + \xdef\noexpand\currentconstructionlistentry {\the\scratchcounter}% + \xdef\noexpand\currentconstructionattribute {\ctxcommand {setinternalreference("\referenceprefix","\currentconstructionreference",\nextinternalreference,"\interactionparameter\c!focus")}}% + \xdef\noexpand\currentconstructionsynchronize{\ctxlatecommand{enhancelist(\the\scratchcounter)}}% }% \fi} Wolfang