Hi Guys I have defined a generic function, for which one of the arguments has a default: setGeneric( "getFwdRate", function(.Object, tenorFrom, tenorTo=tenorFrom) standardGeneric("getFwdRate") ) Then I have defined a method which also has a default: setMethod( "getFwdRate", signature(.Object="CCurveVector", tenorFrom="numeric", tenorTo="numeric"), function(.Object, tenorFrom, tenorTo=tenorFrom+1) { [REMOVED IRRELEVANT IMPLEMENTATION } ) However, if I call getFwdRate(thisYC, 1) I get "Error in function (classes, fdef, mtable) : unable to find an inherited method for function "getFwdRate", for signature "CCurveVector", "numeric", "missing" " Is there a way that this call would match the method I've defined? Or do I need to declare a duplicate method with signature(.Object="CCurveVector", tenorFrom="numeric", tenorTo="missing")? In which case what is the point of having default arguments in the method declaration? thanks Phil -- View this message in context: http://r.789695.n4.nabble.com/S4-setMethod-setGeneric-and-default-arguments-tp3037716p3037716.html Sent from the R devel mailing list archive at Nabble.com.