Index: /trunk/ccl/lib/setf.lisp
===================================================================
--- /trunk/ccl/lib/setf.lisp	(revision 901)
+++ /trunk/ccl/lib/setf.lisp	(revision 902)
@@ -218,5 +218,6 @@
         ',(%car rest)
         ,@(%cdr rest)))
-    (destructuring-bind (lambda-list (store-var &rest mv-store-vars) &body body) rest
+    (destructuring-bind (lambda-list (store-var &rest mv-store-vars) &body body)
+        rest
       (unless (verify-lambda-list lambda-list)
         (signal-program-error $XBadLambdaList lambda-list))
@@ -226,4 +227,5 @@
           (multiple-value-bind (body decls doc)
                                (parse-body body env t)
+            (setq body `((block ,access-fn ,@body)))
             (let* ((args (gensym))
                    (dummies (gensym))
@@ -232,5 +234,4 @@
                    (access-form (gensym))
                    (environment (gensym)))
-              
               `(eval-when (:compile-toplevel :load-toplevel :execute)
                  (store-setf-method 
@@ -252,9 +253,9 @@
                                (cdr ,access-form)
                                ,newval-vars
-                               `((lambda ,,lambda-list
-                                   (block ,',access-fn ,,@body))
+                               `((lambda ,,lambda-list ,,@body)
                                  ,@,dummies)
                                ,new-access-form))))))
-                 ,@(if doc (list doc))))))))))
+                 ,@(if doc (list doc))
+                 ',access-fn))))))))
   
 (defmacro define-modify-macro (name lambda-list function &optional doc-string)
