anchor.diff:  ;;; pressing or releasing those keys.  We want the CLIM modifiers to
   ;;; reflect the post event state.
   
  -(defun x-keysym-to-clim-modifiers (port event-key keychar keysym-keyword state)
  +(defun x-keysym-to-clim-modifiers (port event-key keychar keysym-name state)
     "event-key is :key-press or :key-release"
     (multiple-value-bind (clim-modifiers shift-lock? caps-lock? mode-switch?)
         (x-event-state-modifiers port state)
  
positive.code:     (if (characterp keychar)
  	clim-modifiers	;; ?? true?
  	(modify-modifiers event-key
  			  keysym-keyword
  			  clim-modifiers))))
  
  ;;; Modifier cache
  
negative.code: 	      (logtest +caps-lock+ other-modifiers)
  	      (logtest +mode-switch+ other-modifiers)))))
  
  (defun modify-modifiers (event-key keysym-name modifiers)
    (let ((keysym-modifier (loop for (keysyms modifier) in +clim-modifiers+
  			       if (member keysym-name keysyms)
  			       return modifier)))
      (cond ((and keysym-modifier (eq event-key :key-press))
  	   (logior modifiers keysym-modifier))
  