Index: /trunk/source/lib/macros.lisp
===================================================================
--- /trunk/source/lib/macros.lisp	(revision 15222)
+++ /trunk/source/lib/macros.lisp	(revision 15223)
@@ -397,9 +397,14 @@
         (head nil))
     (if (and (listp expansion)          ; already an ugly hack, made uglier by %error case ...
-             (memq (setq head (pop expansion)) '(signal error warn %error)))
+             (memq (setq head (pop expansion)) '(signal error cerror warn %error)))
       (let ((condform nil)
             (signalform nil)
             (cname (gensym)))
         (case head
+          (cerror
+           (destructuring-bind 
+             (continue cond &rest args) expansion
+             (setq condform `(condition-arg ,cond (list ,@args) 'simple-error)
+                   signalform `(cerror ,continue ,cname ,@args))))
           ((signal error warn)
            (destructuring-bind
