depending in the version of the Forms and the environment, some triggers don´t fire when returning from a called forms, just try and check to yours (the technique works, I made this some times). For example, in my machine (client server env, NT 4.0 SP6, Forms 4.5) I just did :
PROG1 is the master, in Pre-Form I wrote :
:global.form_must_exit := 'NO';

in Prog1 there is a button calling prog2, in prog2 (my version don´t fires When-new-form-instance, too) I wrote a WHEN-NEW-ITEM-INSTANCE, at FORM LEVEL :

if :global.form_must_exit <> 'NO' then
message('Exiting ...'); pause;
exit_form(NO_VALIDATE);
end if;

and in prog3 I just setted the GLOBAL to YES, in a push-button. I just run it some minutes ago : all worked as expected.

OBSERVATION : this is NOT a step-by-step list, I´m just showing a general technique, u will need to do some research.

[]s
Chiappa