anchor.diff:  	 (declare (special ,@vars))
   	 ,@body)))
   
  -(defun sender-responds-to-category-p (sender-spec category-spec)
  +(defun sender-responds-to-category-p (sender-spec category)
     (#+sbcl
      sb-ext:without-package-locks
      #-sbcl
      progn
  -   (let* ((cat-positive (category-variables category-spec))
  -	 (cat-negative (category-negated-variables category-spec))
  -	 (sender-variables (determine-category-variables sender-spec))
  -	 (sender-free (remove-if (lambda (x)
  -				   (or (member x cat-positive)
  -				       (member x cat-negative)))
  -				 sender-variables)))
  -    (eval
  -     `(%with-vars ,cat-positive t
  -	(%with-vars ,cat-negative nil
  -	  (%with-vars ,sender-free nil
  -	    ,sender-spec)))))))
  +   (let* ((cat-positive (category-variables category))
  +	  (cat-negative (category-negated-variables category))
  +	  (sender-variables (determine-category-variables sender-spec))
  +	  (sender-free (remove-if (lambda (x)
  +				    (or (member x cat-positive)
  +					(member x cat-negative)))
  +				  sender-variables)))
  +     (eval
  +      `(%with-vars ,cat-positive t
  +	 (%with-vars ,cat-negative nil
  +	   (%with-vars ,sender-free nil
  +	     ,sender-spec)))))))
   
   (defun build-handle-message-fn (sender)
     (compile 
  
positive.code: 
  (defparameter *default-logical-connective* 'or)
  
  (defvar *log-manager* nil)
  
  (defun log-manager ()
    "Returns the component that handles all of log5's bookkeeping."
    (or *log-manager* (setf *log-manager* (make-log-manager))))
  
  (define-condition sender-not-found-warning (warning)
    ((sender-name :initform nil :reader sender-name :initarg :sender-name))
    (:report (lambda (c s)
  
negative.code: 	  ,message
  	  ,@args))))
  
  (defmacro when-logging (category-spec &body body)
    (if (member :no-logging *features*)
        `(values)
        `(let ((category (load-time-value 
  			(update-category-spec nil ',category-spec)
  			t)))
  	 (when (active-category-p (category-id category))
  	   ,@body))))
  
  ;;?? if I'm right, it would be faster to call the log-test first and
  ;; then the predicate only if we're logging...
  (defmacro log-if (predicate category-spec message &rest args)
  