Hi Dima, > And it does not matter that there is an implicit conversion possible > between auto_ptr<const B>& and auto_ptr<const A> ? > (unless I explicitly state I want to do it, as in "f1" ) If there is a *single* implicit conversion possible, then I think you'll get that implicit conversion. If there are *multiple* implicit conversions possible, then the compiler will indicate an ambiguous implicit conversion situation. HTH, --Eljay