diff -burN boost_1_33_0/boost/regex/v4/perl_matcher_recursive.hpp boost_1_33_0.patched/boost/regex/v4/perl_matcher_recursive.hpp --- boost_1_33_0/boost/regex/v4/perl_matcher_recursive.hpp 2005-07-12 11:49:11.000000000 +0200 +++ boost_1_33_0.patched/boost/regex/v4/perl_matcher_recursive.hpp 2005-10-11 08:52:18.578125000 +0200 @@ -510,7 +510,7 @@ if(::boost::is_random_access_iterator::value) { BidiIterator end = position; - std::advance(end, (std::min)((unsigned)::boost::re_detail::distance(position, last), desired)); + std::advance(end, (std::min)((std::size_t)::boost::re_detail::distance(position, last), desired)); BidiIterator origin(position); while((position != end) && (traits_inst.translate(*position, icase) == what)) { @@ -599,7 +599,7 @@ if(::boost::is_random_access_iterator::value) { BidiIterator end = position; - std::advance(end, (std::min)((unsigned)::boost::re_detail::distance(position, last), desired)); + std::advance(end, (std::min)((std::size_t)::boost::re_detail::distance(position, last), desired)); BidiIterator origin(position); while((position != end) && map[static_cast(traits_inst.translate(*position, icase))]) { @@ -689,7 +689,7 @@ if(::boost::is_random_access_iterator::value) { BidiIterator end = position; - std::advance(end, (std::min)((unsigned)::boost::re_detail::distance(position, last), desired)); + std::advance(end, (std::min)((std::size_t)::boost::re_detail::distance(position, last), desired)); BidiIterator origin(position); while((position != end) && (position != re_is_set_member(position, last, set, re.get_data(), icase))) {