The main program A calls B which in turn calls C. Just prior to exiting, C performs a SIGNAL ERROR which drives an ON ERROR unit contained within B. B displays a message indicating that the ON ERROR unit has been driven and then does a GOTO to continue executing and the callstack is rolled up. Viewing the output from the execution via runa.jcl will show the nested put skip lists from the A -> B -> C call stack and the execution of the ON ERROR unit.