Index: /trunk/ccl/level-1/l1-error-system.lisp
===================================================================
--- /trunk/ccl/level-1/l1-error-system.lisp	(revision 332)
+++ /trunk/ccl/level-1/l1-error-system.lisp	(revision 333)
@@ -127,4 +127,6 @@
   ((expected-type :initform '(satisfies proper-list-p) :reader type-error-expected-type)))
 
+(define-condition cant-construct-arglist (improper-list)
+  ())
 
 
@@ -245,4 +247,8 @@
              (format s "Can't throw to tag ~s" (slot-value c 'tag)))))
 
+(define-condition inactive-restart (control-error)
+  ((restart-name :initarg :restart-name))
+  (:report (lambda (c s)
+	     (format s "Restart ~s is not active" (slot-value c 'restart-name)))))
 
 (define-condition lock-protocol-error (control-error)
@@ -479,5 +485,5 @@
       (when (or (eq restart name) (eq (%restart-name restart) name))
         (return-from %active-restart (values restart cluster)))))
-  (error "Restart ~S is not active." name))
+  (error 'inactive-restart :restart-name name))
 
 (defun invoke-restart (restart &rest values)
@@ -891,4 +897,5 @@
         (cons $xaccessnth 'sequence-index-type-error)
 	(cons $ximproperlist 'improper-list)
+	(cons $xnospread 'cant-construct-arglist)
         ))
 
