anchor.diff:      #'(lambda ()
   	(funcall unref location))))
   
  -;; FINALIZE-P should always be given the same value as the keyword
  -;; argument :FINALZIE given to MAKE-PROXY-INSTANCE or non NIL if the
  -;; proxy was created with MAKE-INSTANCE
  +;; FINALIZE-P should always be the same as the keyword argument
  +;; :FINALZIE given to MAKE-PROXY-INSTANCE or non NIL if the proxy was
  +;; created with MAKE-INSTANCE
   (defmethod invalidate-instance ((instance proxy) &optional finalize-p)
     (remove-cached-instance (foreign-location instance))
     #+(or sbcl cmu)
     (progn
       (when finalize-p
         (funcall (instance-finalizer instance)))
  -    (slot-makunbound instance 'location)
  +    #?-(sbcl>= 0 9 17)(slot-makunbound instance '%location)
  +    #?(sbcl>= 0 9 17)(remhash instance *foreign-instance-locations*)
       (cancel-finalization instance))
     ;; We can't cache invalidated instances in CLISP beacuse it is
     ;; not possible to cancel finalization
  
positive.code: (defgeneric invalidate-instance (instance &optional finalize-p))
  (defgeneric allocate-foreign (object &key &allow-other-keys))
  
  (defun foreign-location (instance)
    #-clisp(slot-value instance 'location)
    #+clisp(gethash instance *foreign-instance-locations*))
  
  (defun (setf foreign-location) (location instance)
    #-clisp(setf (slot-value instance 'location) location)
    #+clisp(setf (gethash instance *foreign-instance-locations*) location))
  
  (defun proxy-valid-p (instance)
    #-clisp(slot-boundp instance 'location)
    #+clisp(and (gethash instance *foreign-instance-locations*) t))
  
  (defmethod reference-function ((name symbol))
    (reference-function (find-class name)))
  
negative.code: 
  ;;;; Proxy for alien instances
  
  #?(or (sbcl>= 0 9 17) (featurep :clisp))
  (defvar *foreign-instance-locations* 
    (make-hash-table #+clisp :weak #+sbcl :weakness :key))
  
  ;; TODO: add a ref-counted-proxy subclass
  (eval-when (:compile-toplevel :load-toplevel :execute)
    (defclass proxy (virtual-slots-object)
      (#?-(or (sbcl>= 0 9 17) (featurep :clisp))(%location :special t :type pointer))
      (:metaclass virtual-slots-class)))
  
  (defgeneric instance-finalizer (instance))
  