anchor.diff:                 (progn
                    ,@body)))))))
   
  -(defun decode-x-button-code (code)
  -  (aref #.(vector +pointer-left-button+
  -                  +pointer-middle-button+
  -                  +pointer-right-button+
  -		  +pointer-wheel-up+
  -		  +pointer-wheel-down+)
  -        (1- code)))
  +(defun decode-x-button-code (code)  
  +  (let ((button-mapping #.(vector +pointer-left-button+
  +                                  +pointer-middle-button+
  +                                  +pointer-right-button+
  +                                  +pointer-wheel-up+
  +                                  +pointer-wheel-down+)))
  +    (if (and (> code 0)
  +             (<= code (1+ (length button-mapping))))
  +        (aref button-mapping (1- code))
  +        nil)))
   
   ;; From "Inter-Client Communication Conventions Manual", Version 2.0.xf86.1,
   ;; section 4.1.5:
  
positive.code:         (property  (selection-event-property event))
          (target    (selection-event-target event))
          (time      (event-timestamp event)))
  ;    (describe event *trace-output*)
  ;    (finish-output *trace-output*)
      (cond ((member target '(:UTF8_STRING :STRING :TEXT))
             (xlib:change-property requestor property
                                   (utf-8-encode
  
negative.code:       (setf (xlib:display-error-handler (clx-port-display port))
          #'clx-error-handler)
  
        #+nil ;; Uncomment this when debugging CLX backend if asynchronous errors become troublesome..
        (setf (xlib:display-after-function (clx-port-display port)) #'xlib:display-force-output))
        
      
      (setf (clx-port-screen port) (nth (getf options :screen-id 0)
  				      (xlib:display-roots (clx-port-display port))))
  