http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45893
--- Comment #3 from Paolo Carlini <paolo.carlini at oracle dot com> 2010-10-06 01:00:27 UTC --- In fact, if I enable again the volatile and const volatile overloads *and* fiddle a bit (incompletely) with bind(_Functor __f, _ArgTypes... __args) changing it to bind(_Functor __f, _ArgTypes&&... __args) and also with thread(_Callable&& __f, _Args&&... __args) to forward the __args to bind, the packaged_task/members/invoke5.cc regression caused by the former overloads goes away. Thus there are definitely interactionss between these issues.