We worked around this failure by changing:


Func = boost::bind(Func, _1) && boost::bind(&Boom::Oops, _1); 


to


Func = boost::bind(AND, Func, &Boom::Oops, _1); // custom AND function


Not sure why it used to work, or why it still works with raw pointers, but not shared_ptr.  The actual change happens from 1.59 (working) to 1.60 (changed behavior).


Jason