The FOR PROGRAM lasts until the current program level (CALL, PERFORM, etc...) exits. The Object does remain through lower levels so if the current level itself issues a CALL, PERFORM or executes a method call, the object will remain. Basically the object remains until the current level issues an EXIT or END (or RETURN to a higher level - -not a GOSUB return)