Any untrapped errors in our logic religiously exit via our own function which performs some standard logging and tracing. To have the die ultimately reported from the perspective of the using code, rather than the error exit function, the code is terminated with a croak () call from the Carp module. On VMS, this always results in the logic exiting with a status of %X1BC (a 'no logical name match' error), which is then reported by VMS. It seems to make no difference what $^E (or $! for that matter) is set to - the final status always ends up as a NOLOGNAM. In the same situation, a die works fine, and reports whatever $^E is set to. Any ideas? Andrew
