anchor.diff:  
   ;;;;
   
  -(defbinding %object-class-properties () pointer
  +(defbinding %object-class-list-properties () pointer
     (class pointer)
     (n-properties unsigned-int :out))
   
  -(defun query-object-class-properties (type-number)
  +(defun query-object-class-properties (type-number &optional
  +				      inherited-properties)
     (let ((class (type-class-ref type-number)))
       (multiple-value-bind (array length)
  -	(%object-class-properties class)
  -      (map-c-array 'list #'identity array 'param length))))
  -
  -(defun query-object-type-dependencies (type-number)
  -  (delete-duplicates
  -   (reduce
  -    #'nconc
  -    (mapcar
  -     #'(lambda (param)
  -	 ;; A gobject does not depend on it's supertypes due to forward
  -	 ;; referenced superclasses
  -  	 (delete-if
  -  	  #'(lambda (type)
  -  	      (type-is-p type-number type))
  -	  (type-hierarchy (param-type param))))
  -     (query-object-class-properties type-number)))))
  +	(%object-class-list-properties class)
  +      (unwind-protect
  +	  (let ((all-properties
  +		 (map-c-array 'list #'identity array 'param length)))
  +	    (if (not inherited-properties)
  +		(delete-if
  +		 #'(lambda (param)
  +		     (not (eql type-number (param-owner-type param))))
  +		 all-properties)
  +	      all-properties))
  +	(deallocate-memory array)))))
   
   
   (defun default-slot-name (name)
  
positive.code: 
  
  
  ;;;; Parameter stuff
  
  (defbinding %object-set-property () nil
    (object gobject)
  
negative.code:     nil "~A-~A~A" class-name slot-name
      (if (eq 'boolean type) "-P" ""))))
  
  (defun expand-gobject-type (type-number &optional options
  			    (metaclass 'gobject-class))
    (let* ((super (supertype type-number))
  	 (class  (type-from-number type-number))
  	 (override-slots (getf options :slots))
  	 (expanded-slots
  	  (mapcar
  	   #'(lambda (param)
  	       (with-slots (name flags value-type documentation) param
  	         (let* ((slot-name (default-slot-name name))
  			(slot-type (type-from-number value-type #|t|#))
  			(accessor
  			 (default-slot-accessor class slot-name slot-type)))
  		   `(,slot-name
  		     :allocation :property
  		     :pname ,name
  		     ,@(cond
  			((and
  			  (member :writable flags)
  