Hi, I just tried and failed to find a simple way to compute the upper and lower bounds of some interval_sets: typedef boost::icl::interval_set<int> list_type; typedef list_type::value_type interval; void add_region(interval& av, const list_type& reg) { av += reg; // didn't work if (!reg.empty()) { // didn't work either: av += tAddressInterval( reg.begin()->lower(), (--reg.end())->upper())); // this one works: av = tAddressInterval(std::min(av.lower(), reg.begin()->lower()), std::max(av.lower(), (--reg.end())->upper())); } } My workaround doesn't even respect the boundary types. I wonder if there is not a simpler way for such a fundamental tasks. Best regards Olaf