I think that's normal behaviour... in essence, *raise_application_error* is just a slightly fancier version of *raise*. SQL> begin 2 raise_application_error(-20400, 'This is bad... real bad.'); 3 exception 4 when others then 5 dbms_output.put_line('Panic!'); 6 end; 7 / Panic! PL/SQL procedure successfully completed. Of course, it's always possible that I'm misinterpreting something. Any chance of sharing the relevant code snippet(s)? -- "I'm too sexy for my code." -Awk Sed Fred -- //www.freelists.org/webpage/oracle-l