anchor.diff:                      'nil
                       (sys.int::raise-bad-block ',(block-information-name tag)))
                     (return-from ,tag
  -                    (multiple-value-prog1 ,(lsb-form value-form)
  -                      (sys.int::%%unwind-to (sys.int::%%block-info-binding-stack-pointer ,info)))
  +                    ,(list
  +                      'multiple-value-prog1
  +                      (lsb-form value-form)
  +                      `(sys.int::%%unwind-to (sys.int::%%block-info-binding-stack-pointer ,info)))
                       ,info))))
             (t
              ;; Local RETURN-FROM, locate the matching BLOCK and emit any unwind forms required.
  
positive.code:       (cond
          ((tagbody-information-env-var info)
           ;; Escaping TAGBODY.
           `(progn
              ;; Must be outside the tagbody, so the special stack pointer is saved correctly.
              (sys.int::%%push-special-stack ,(tagbody-information-env-var info)
                                             ',(tagbody-information-env-offset info))
              ,(frob-tagbody)
              (sys.int::%%disestablish-block-or-tagbody)
              'nil))
          (t ;; Local TAGBODY.
           (frob-tagbody))))))
  
  
negative.code:                               (t
                                 (push (list :special (first binding))
                                       *special-bindings*)
                                 (list
                                  'progn
                                  `(sys.int::%%bind ',(first binding) ,(lsb-form (second binding)))
                                  (list
                                   'multiple-value-prog1
                                   (frob (rest bindings))
                                   '(sys.int::%%unbind)))))))
                       (t `(progn ,@(mapcar #'lsb-form (cddr form)))))))
        (frob (second form)))))
  
  