Index: /branches/working-0711/ccl/level-1/l1-readloop-lds.lisp
===================================================================
--- /branches/working-0711/ccl/level-1/l1-readloop-lds.lisp	(revision 7787)
+++ /branches/working-0711/ccl/level-1/l1-readloop-lds.lisp	(revision 7788)
@@ -388,4 +388,8 @@
   (break-loop-handle-error condition error-pointer))
 
+(defun abnormal-application-exit ()
+  (print-call-history)
+  (quit -1))
+
 (defun break-loop-handle-error (condition error-pointer)
   (multiple-value-bind (bogus-globals newvals oldvals) (%check-error-globals)
@@ -397,18 +401,18 @@
         (funcall hook condition hook)))
     (%break-message "Error" condition error-pointer)
-    (with-terminal-input
-      (let* ((s *error-output*))
-	(dolist (bogusness bogus-globals)
-	  (let ((oldval (pop oldvals)))
-	    (format s "~&;  NOTE: ~S was " bogusness)
-	    (if (eq oldval (%unbound-marker-8))
-	      (format s "unbound")
-	      (format s "~s" oldval))
-	    (format s ", was reset to ~s ." (symbol-value bogusness)))))
-      (if (and *break-on-errors* (not *batch-flag*))
-	(break-loop condition error-pointer)
-        (if *batch-flag*
-          (quit -1)
-          (abort))))))
+    (let* ((s *error-output*))
+      (dolist (bogusness bogus-globals)
+        (let ((oldval (pop oldvals)))
+          (format s "~&;  NOTE: ~S was " bogusness)
+          (if (eq oldval (%unbound-marker-8))
+            (format s "unbound")
+            (format s "~s" oldval))
+          (format s ", was reset to ~s ." (symbol-value bogusness)))))
+    (if (and *break-on-errors* (not *batch-flag*))
+      (with-terminal-input
+          (break-loop condition error-pointer))
+      (if *batch-flag*
+        (abnormal-application-exit)
+        (abort)))))
 
 (defun break (&optional string &rest args)
