anchor.diff:  			 (funcall setter value iter))
   		 row setters)))))))
   
  -(defun (setf tree-model-column-value) (value model iter column)
  -  (funcall (tree-model-column-value-setter model column) value iter)
  -  value)
  +(defun (setf tree-model-value) (value model row column)
  +  (let ((iter (etypecase row
  +		(tree-iter row)
  +		(tree-path (multiple-value-bind (valid iter)
  +			       (tree-model-get-iter model row)
  +			     (if valid
  +				 iter
  +			       (error "Invalid tree path: ~A" row)))))))
  +    (funcall (tree-model-column-value-setter model column) value iter)
  +    value))
   
   (defun (setf tree-model-row-data) (data model iter)
     (funcall (tree-model-row-setter model) data iter)
  
positive.code:      (string (position column (object-data model 'column-names)
  		   :test #'string=)))
     (error "~A has no column ~S" model column)))
  
  (defun tree-model-column-value-setter (model column)
    (let ((setters (or
  
negative.code:      (multiple-value-bind (valid iter) (tree-model-get-iter store row)
         (if valid
  	   (%list-store-remove store iter)
  	   (error "~A not poiniting to a valid iterator in ~A" row store))))
      (tree-row-reference 
       (let ((path (tree-row-reference-get-path row)))
         (if path
  