Index: /branches/working-0711/ccl/lib/backtrace.lisp
===================================================================
--- /branches/working-0711/ccl/lib/backtrace.lisp	(revision 8024)
+++ /branches/working-0711/ccl/lib/backtrace.lisp	(revision 8025)
@@ -96,22 +96,23 @@
           (call 'funcall)
           (call `(function ,(concatenate 'string "#<" (%lfun-name-string lfun) ">")))))
-      (multiple-value-bind (req opt restp keys)
-          (function-args lfun)
-        (when (or (not (eql 0 req)) (not (eql 0 opt)) restp keys)
-          (let* ((arglist (arglist-from-map lfun)))
-            (if (null arglist)
-              (call "???")
-              (progn
-                (dotimes (i req)
-                  (let* ((val (argument-value context cfp lfun pc (pop arglist))))
-                    (if (eq val (%unbound-marker))
-                      (call "?")
-                      (call (let* ((*print-length* *backtrace-print-length*)
-                                   (*print-level* *backtrace-print-level*))
-                              (format nil "~s" val))))))
-                (if (or restp keys (not (eql opt 0)))
-                  (call "[...]"))
-                ))))))
-    (call)))
+      (if (<= pc target::arg-check-trap-pc-limit)
+        (append (call) (arg-check-call-arguments cfp lfun))
+        (multiple-value-bind (req opt restp keys)
+            (function-args lfun)
+          (when (or (not (eql 0 req)) (not (eql 0 opt)) restp keys)
+            (let* ((arglist (arglist-from-map lfun)))
+              (if (null arglist)
+                (call "???")
+                (progn
+                  (dotimes (i req)
+                    (let* ((val (argument-value context cfp lfun pc (pop arglist))))
+                      (if (eq val (%unbound-marker))
+                        (call "?")
+                        (call (let* ((*print-length* *backtrace-print-length*)
+                                     (*print-level* *backtrace-print-level*))
+                                (format nil "~s" val))))))
+                  (if (or restp keys (not (eql opt 0)))
+                    (call "[...]"))))))
+          (call))))))
 
 
@@ -150,5 +151,7 @@
             (unless (and (typep detailed-p 'fixnum)
                          (not (= (the fixnum detailed-p) frame-number)))
-              (format t "~&(~x) : ~D ~a ~d"
+              (format t "~&~c(~x) : ~D ~a ~d"
+                      (let* ((q (parent-frame p context)))
+                        (if (and q (exception-frame-p q)) #\- #\space))
                       (index->address p) frame-number
                       (if lfun (backtrace-call-arguments context p lfun pc))
