Hi, The first thing that jumps to mind is that you need to disambiguate which find and insert methods you mean. Untested code... --- typedef StrList::const_iterator (StrList::* StrListFind)(const StrList::key_type&) const; typedef std::pair StrList::iterator,bool (StrList::* StrListInsert)(const StrList::value_type& _Val); std::for_each( alist.begin(), alist.end(), boost::lambda::if_then( bind( static_cast<StrListFind>(&StrList::find),&excluded,bind(&A::get,1))!=exclude d.end(), bind( static_cast<StrListInsert>(&StrList::insert),&excluded,bind(&A::get,_1) ) ) ); ---- HTH, Richard. //-----Original Message----- //From: boost-users-bounces@lists.boost.org //[mailto:boost-users-bounces@lists.boost.org] On Behalf Of //Thaddeus Olczyk //Sent: 28 July 2005 11:12 //To: boost-users@lists.boost.org //Subject: [Boost-users] [Boost Lambda] Simple problem using //argument asobject: part III // //Ok. I'm still not getting it. Sorry for the inconvenience. //Another piece of sample code that doesn't compile. Thanks.