anchor.diff:    (cond
      ((= #x1b keysym)
       (get-key-name-from-cocoa-constants keysym))
  +   ;; Manually massage this... messy. OS X generates 127 for |<-| key,
  +   ;; map it onto #\Backspace (by default in OpenMCL it maps onto
  +   ;; #\Del (delete forward)). OpenMCL treats #\Backspace and
  +   ;; #\Delete as synonyms.
  +   ((= #x7f keysym)
  +    #\Backspace)
      ((and (<= 0 keysym 255))
       (code-char keysym))
      (t nil)))
  
positive.code:   (make-instance (if (eq :key-down event-type)
  		     'key-press-event
  		   'key-release-event)
  		 :key-name       keyname
  		 ;; not needed by spec - should change implementation?
  		 :key-character  (and (characterp keyname) keyname)
  		 :x              0	; Not needed for key events?
  		 :y              0	; Not needed for key events?
  		 :graft-x        0	; Not needed for key events?
  
negative.code: (defun characters-to-key-name (ns-string-characters-in)
  ;;;  (format *terminal-io* "Processing ~S~%" ns-string-characters-in)
  ;;;  (format *terminal-io* "Got string with length ~A~%" (send ns-string-characters-in 'length))
  ;;;  (format *terminal-io* "character(0) = ~A~%"
  ;;;	  (char-code (send ns-string-characters-in :character-at-index 0)))
    (if (<= (send ns-string-characters-in :character-at-index 0) 255)
        (numeric-keysym-to-character (send ns-string-characters-in :character-at-index 0))
      (progn
  