'update.default( x, ...)' checks for a component of 'x' named 'call' and gives up if there isn't one. Before giving up, how about checking for an attribute named 'call'? I.E. something like this: # Existing code: call <- object$call # Suggested insertion: if (is.null(call)) call <- attr( object, 'call') # Existing code: if( is.null( call)) stop("need an object with call component or attribute") # slight mod Why would anyone store the call as an attribute, you may ask? Well, I often find it useful to write code that returns a data.frame, which would be corrupted by adding a 'call' component-- but I still want to record how the object was generated, so I use a 'call' attribute instead. Of course it would be possible to extend the object's class to inherit from 'data.frame' and write an 'update' method for that class, but that seems like overkill. Mark ******************************* Mark Bravington CSIRO (CMIS) PO Box 1538 Castray Esplanade Hobart TAS 7001 phone (61) 3 6232 5118 fax (61) 3 6232 5012 Mark.Bravington@csiro.au