Hi Hans, subfootnotes don’t work because 1. \noteparameter has no parent set which can be used for undefined values which can be solved with the extra line in \strc_define_commands_notation \unexpanded\def\strc_define_commands_notation#1#2#3% current level parent {\doifelsenothing{#3} {\normalexpanded{\defineconstruction[#1][\s!handler=\v!notation,\c!level=#2]}% \setevalue{\??notation#1:\s!parent}{\??notation}}% {\normalexpanded{\defineconstruction[#1][#3][\s!handler=\v!notation,\c!level=#2]}% + \setevalue{\??note #1:\s!parent}{\??note #3}% \setevalue{\??notation#1:\s!parent}{\??notation#3}}% \setuevalue{\e!next #1}{\strc_notations_next }% \setuevalue{\c!reset#1}{\strc_notations_reset }% %setuevalue{\c!set #1}{\strc_notations_set }% %setuevalue {#1}{\strc_notations_command{\currentnotation}}% %setuevalue{\e!start#1}{\strc_notations_start {\currentnotation}{#1}}% \setuevalue {#1}{\strc_notations_command{#1}}% \setuevalue{\e!start#1}{\strc_notations_start {#1}{#1}}% okay? \setuevalue{\e!stop #1}{\strc_notations_stop }} 2. the name for the insert is wrong because it uses the name of the command (e.g. subfootnote) and not the name of the note type, e.g. in this code block \namedinsertionnumber and \page_inserts_set_location get “subfootnote” as argument but it has to be always “footnote”. \def\strc_notes_set_location_text % we don't use inserts anyway (e.g. endnotes) {\settrue\c_strc_notes_delayed \ctxcommand{setnotestate("\currentnote","store")}% \page_inserts_set_location\currentnote\v!text % \setupinsertion[\currentnote][\c!location=\v!text]% \global\count\namedinsertionnumber\currentnote\zerocount \global\dimen\namedinsertionnumber\currentnote\maxdimen \global\skip \namedinsertionnumber\currentnote\zeropoint} One way to fix is to store the note type in a key when \definenote is called (e.g. “insert=\currentote” but only when \footnote is created and not for \subfootnote) and use this key as argument for \namedinsertionnumber etc. Wolfgang