Hi All, I'm trying to update a ConTeXt module of mine. It does some data gathering during the ConTeXt run, and then processes it after the run is complete. This used to work last year: local id, err = callback.register('stop_run', new_stop_run_function) But now err is set to "callback 'stop_run' is frozen (actions performed at the end of a run)". I see from the mailing list archive that registering user callbacks was disallowed in February of this year (2010). I also saw some advice for installing other new user processing (like 'pre_linebreak_filter'), but no general advice for adapting to the lack of callbacks. ( http://archive.contextgarden.net/message/20100219.130524.b3857a0a.en.html) After trying various approaches for a couple of hours, I'm calling for help. :) Here's what I ended up with: \startluacode print('%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% TEST1') local function after_run (head, groupcode) print('%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% TEST2') return head, true end nodes.tasks.appendaction('finalizers','after','after_run') \stopluacode \starttext \input knuth \stoptext In the output, I see the TEST1 line, but not the TEST2 line. I don't know what "head" and "groupcode" are, but those seem to be the expected parameters for an action. I don't know why it returns "head, true", but that was recommended in a posting ( http://archive.contextgarden.net/message/20100410.005025.76ac9efd.en.html). I have no idea if 'finalizers' is the right parameter, but I didn't see any others that looked like it could be synonymous with 'stop_run'.