Index: except.inc
===================================================================
--- except.inc	(revision 594)
+++ except.inc	(working copy)
@@ -166,7 +166,13 @@
   If (ExceptProc<>Nil) and (ExceptObjectStack<>Nil) then
     with ExceptObjectStack^ do
       TExceptProc(ExceptProc)(FObject,Addr,FrameCount,Frames);
-  RunError(217);
+  if erroraddr = nil then
+    RunError(217)
+  else
+    if errorcode <= maxExitCode then
+      halt(errorcode)
+    else
+      halt(255)
 end;
 
 
Index: system.inc
===================================================================
--- system.inc	(revision 594)
+++ system.inc	(working copy)
@@ -678,6 +678,8 @@
   errorcode:=word(Errno);
   erroraddr:=addr;
   errorbase:=frame;
+  if ExceptAddrStack <> nil then
+    raise TObject(nil) at addr,frame;
   if errorcode <= maxExitCode then
     halt(errorcode)
   else
