Hello, i'm compiling a program with gcc 4.1.0 (not 4.0.1, it's not a mistake ;), but i've also tried gcc 4.0.0 and there's the ice too), and gcc complains about that part of the program : template <typename Functor, typename FunctorMethodPtr> typename adaptor::adaptor<typename adaptor::caller<Functor, typename adaptor::decayer<FunctorMethodPtr>::type> > adapt(Functor const& functor, FunctorMethodPtr) { return typename adaptor::adaptor<typename adaptor::caller<Functor, typename adaptor::decayer<FunctorMethodPtr>::type> >(functor); } The error reported by gcc is: ../../src/functions/../parser/adapt.h: In function 'avs::parser::adaptor::adaptor<avs::parser::adaptor::caller<Functor, typename avs::parser::adaptor::decayer<FunctorMethodPtr>::type>, typename avs::parser::adaptor::caller<Functor, typename avs::parser::adaptor::decayer<FunctorMethodPtr>::type>::ResultType> avs::parser::detail::adapt(const Functor&, FunctorMethodPtr)': ../../src/functions/../parser/adapt.h:50: internal compiler error: tree check: expected class 'type', have 'declaration' (namespace_decl) in dependent_type_p, at cp/pt.c:12020 line 50 is the line where the 'return' is. I'm not skilled enough to know if it's a problem with gcc or with the program. I would also like to point out that there is no problem with gcc 3.3.4. Does someone see any problem in the code above, or a workaround ? Thank you Vincent Torri