Index: /trunk/ccl/lib/macros.lisp
===================================================================
--- /trunk/ccl/lib/macros.lisp	(revision 5673)
+++ /trunk/ccl/lib/macros.lisp	(revision 5674)
@@ -870,5 +870,5 @@
         (if (eq construct 'etypecase)
             (push `(t (values (%err-disp #.$XWRONGTYPE ,key-var ',types))) body)
-            (push `(t (setf ,key-var (ensure-value-of-type  ,key-var ',types ',keyform))
+            (push `(t (setf ,keyform (ensure-value-of-type  ,key-var ',types ',keyform))
                       (go ,e-c-p)) body))))
     `(cond ,@(nreverse body))))
@@ -892,6 +892,6 @@
        ,(typecase-aux key-var clauses 'etypecase))))
 
-(defmacro ctypecase (keyform &body clauses)
-  "CTYPECASE Keyform {(Type Form*)}*
+(defmacro ctypecase (keyplace &body clauses)
+  "CTYPECASE Key {(Type Form*)}*
   Evaluates the Forms in the first clause for which TYPEP of Keyform and Type
   is true. If no form is satisfied then a correctable error is signalled."
@@ -899,7 +899,7 @@
         (tag (gensym)))
     `(prog (,key-var)
-       (setq ,key-var ,keyform)
        ,tag
-       (return ,(typecase-aux key-var clauses tag keyform)))))
+       (setq ,key-var ,keyplace)
+       (return ,(typecase-aux key-var clauses tag keyplace)))))
 
 (defmacro destructuring-bind (lambda-list expression &body body)
