"Seg Faults if an exception is raised" Is that before or after control gets to raise_exception? I assume before, but if not, "living on the edge" might include adding a Put_Line and a call or two to exit a LITTLE more gracefully.