--- a/b/boost/boost/math/special_functions/gamma.hpp	2013-05-31 18:09:38.509792503 +0200
+++ a/b/boost/boost/math/special_functions/gamma.hpp	2013-05-31 18:09:41.438795355 +0200
@@ -1360,7 +1360,6 @@
    BOOST_FPU_EXCEPTION_GUARD
    typedef typename tools::promote_args<T1, T2>::type result_type;
    typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   typedef typename lanczos::lanczos<value_type, Policy>::type evaluation_type;
    typedef typename policies::normalise<
       Policy, 
       policies::promote_float<false>, 
@@ -1489,7 +1488,6 @@
    BOOST_FPU_EXCEPTION_GUARD
    typedef typename tools::promote_args<T1, T2>::type result_type;
    typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   typedef typename lanczos::lanczos<value_type, Policy>::type evaluation_type;
    typedef typename policies::normalise<
       Policy, 
       policies::promote_float<false>, 
@@ -1520,7 +1518,6 @@
    BOOST_FPU_EXCEPTION_GUARD
    typedef typename tools::promote_args<T1, T2>::type result_type;
    typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   typedef typename lanczos::lanczos<value_type, Policy>::type evaluation_type;
    typedef typename policies::normalise<
       Policy, 
       policies::promote_float<false>, 
@@ -1551,7 +1548,6 @@
    BOOST_FPU_EXCEPTION_GUARD
    typedef typename tools::promote_args<T1, T2>::type result_type;
    typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   typedef typename lanczos::lanczos<value_type, Policy>::type evaluation_type;
    typedef typename policies::normalise<
       Policy, 
       policies::promote_float<false>, 
--- a/b/boost/boost/math/special_functions/detail/igamma_inverse.hpp	2013-05-31 18:11:23.420936359 +0200
+++ a/b/boost/boost/math/special_functions/detail/igamma_inverse.hpp	2013-05-31 18:11:24.772938706 +0200
@@ -341,7 +341,6 @@
       // flag is set, then Q(x) - q and it's derivatives.
       //
       typedef typename policies::evaluation<T, Policy>::type value_type;
-      typedef typename lanczos::lanczos<T, Policy>::type evaluation_type;
       typedef typename policies::normalise<
          Policy, 
          policies::promote_float<false>, 
--- a/b/boost/boost/math/special_functions/beta.hpp	2013-05-31 18:12:02.036007347 +0200
+++ a/b/boost/boost/math/special_functions/beta.hpp	2013-05-31 18:11:56.260996218 +0200
@@ -1331,7 +1331,6 @@
    BOOST_FPU_EXCEPTION_GUARD
    typedef typename tools::promote_args<RT1, RT2, RT3>::type result_type;
    typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   typedef typename lanczos::lanczos<value_type, Policy>::type evaluation_type;
    typedef typename policies::normalise<
       Policy, 
       policies::promote_float<false>, 
@@ -1349,7 +1348,6 @@
    BOOST_FPU_EXCEPTION_GUARD
    typedef typename tools::promote_args<RT1, RT2, RT3>::type result_type;
    typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   typedef typename lanczos::lanczos<value_type, Policy>::type evaluation_type;
    typedef typename policies::normalise<
       Policy, 
       policies::promote_float<false>, 
--- a/b/boost/boost/random/generate_canonical.hpp	2013-05-31 18:13:09.804149686 +0200
+++ a/b/boost/boost/random/generate_canonical.hpp	2013-05-31 18:13:30.020195845 +0200
@@ -55,7 +55,6 @@
     using std::floor;
     BOOST_ASSERT((g.min)() == 0);
     BOOST_ASSERT((g.max)() == 1);
-    typedef typename URNG::result_type base_result;
     std::size_t digits = std::numeric_limits<RealType>::digits;
     std::size_t engine_bits = detail::generator_bits<URNG>::value();
     std::size_t b = (std::min)(bits, digits);
--- a/b/boost/boost/random/uniform_real_distribution.hpp	2013-05-31 18:15:04.571429634 +0200
+++ a/b/boost/boost/random/uniform_real_distribution.hpp	2013-05-31 18:14:28.452337186 +0200
@@ -36,7 +36,6 @@
 {
     for(;;) {
         typedef T result_type;
-        typedef typename Engine::result_type base_result;
         result_type numerator = static_cast<T>(eng() - (eng.min)());
         result_type divisor = static_cast<T>((eng.max)() - (eng.min)());
         BOOST_ASSERT(divisor > 0);
--- a/b/boost/boost/lexical_cast.hpp	2013-05-31 13:52:39.758500819 +0200
+++ a/b/boost/boost/lexical_cast.hpp	2013-05-31 13:52:43.927514850 +0200
@@ -865,7 +865,6 @@
 #ifndef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
             BOOST_STATIC_ASSERT(!std::numeric_limits<T>::is_signed);
 #endif
-            typedef typename Traits::int_type int_type;
             CharT const czero = lcast_char_constants<CharT>::zero;
             --end;
             value = 0;
--- a/b/boost/boost/math/special_functions/sign.hpp	2013-05-31 13:53:52.518746080 +0200
+++ a/b/boost/boost/math/special_functions/sign.hpp	2013-05-31 13:59:08.053810037 +0200
@@ -110,7 +110,6 @@
 { 
    typedef typename detail::fp_traits<T>::type traits;
    typedef typename traits::method method;
-   typedef typename boost::is_floating_point<T>::type fp_tag;
    return detail::signbit_impl(x, method());
 }
 
@@ -124,7 +123,6 @@
 { //!< \brief return unchanged binary pattern of x, except for change of sign bit. 
    typedef typename detail::fp_traits<T>::sign_change_type traits;
    typedef typename traits::method method;
-   typedef typename boost::is_floating_point<T>::type fp_tag;
 
    return detail::changesign_impl(x, method());
 }
--- a/b/boost/boost/math/special_functions/fpclassify.hpp	2013-05-31 14:02:13.660436127 +0200
+++ a/b/boost/boost/math/special_functions/fpclassify.hpp	2013-05-31 14:01:17.372246240 +0200
@@ -328,7 +328,6 @@
 { //!< \brief return true if floating-point type t is finite.
    typedef typename detail::fp_traits<T>::type traits;
    typedef typename traits::method method;
-   typedef typename boost::is_floating_point<T>::type fp_tag;
    typedef typename tools::promote_args<T>::type value_type;
    return detail::isfinite_impl(static_cast<value_type>(x), method());
 }
@@ -339,7 +338,6 @@
 { //!< \brief return true if floating-point type t is finite.
    typedef detail::fp_traits<long double>::type traits;
    typedef traits::method method;
-   typedef boost::is_floating_point<long double>::type fp_tag;
    typedef long double value_type;
    return detail::isfinite_impl(static_cast<value_type>(x), method());
 }
@@ -399,7 +397,6 @@
 {
    typedef typename detail::fp_traits<T>::type traits;
    typedef typename traits::method method;
-   typedef typename boost::is_floating_point<T>::type fp_tag;
    typedef typename tools::promote_args<T>::type value_type;
    return detail::isnormal_impl(static_cast<value_type>(x), method());
 }
@@ -410,7 +407,6 @@
 {
    typedef detail::fp_traits<long double>::type traits;
    typedef traits::method method;
-   typedef boost::is_floating_point<long double>::type fp_tag;
    typedef long double value_type;
    return detail::isnormal_impl(static_cast<value_type>(x), method());
 }
@@ -488,7 +484,6 @@
 {
    typedef typename detail::fp_traits<T>::type traits;
    typedef typename traits::method method;
-   typedef typename boost::is_floating_point<T>::type fp_tag;
    typedef typename tools::promote_args<T>::type value_type;
    return detail::isinf_impl(static_cast<value_type>(x), method());
 }
@@ -499,7 +494,6 @@
 {
    typedef detail::fp_traits<long double>::type traits;
    typedef traits::method method;
-   typedef boost::is_floating_point<long double>::type fp_tag;
    typedef long double value_type;
    return detail::isinf_impl(static_cast<value_type>(x), method());
 }
@@ -571,7 +565,6 @@
 { //!< \brief return true if floating-point type t is NaN (Not A Number).
    typedef typename detail::fp_traits<T>::type traits;
    typedef typename traits::method method;
-   typedef typename boost::is_floating_point<T>::type fp_tag;
    return detail::isnan_impl(x, method());
 }
 
@@ -585,7 +578,6 @@
 { //!< \brief return true if floating-point type t is NaN (Not A Number).
    typedef detail::fp_traits<long double>::type traits;
    typedef traits::method method;
-   typedef boost::is_floating_point<long double>::type fp_tag;
    return detail::isnan_impl(x, method());
 }
 #endif
--- a/b/boost/boost/date_time/gregorian/greg_facet.hpp	2013-05-31 14:03:30.476695310 +0200
+++ a/b/boost/boost/date_time/gregorian/greg_facet.hpp	2013-05-31 14:03:22.894669713 +0200
@@ -215,7 +215,6 @@
   {
     std::istream_iterator<std::basic_string<charT>, charT> beg(is), eos;
     
-    typedef boost::date_time::all_date_names_put<greg_facet_config, charT> facet_def;
     d = from_stream(beg, eos);
     return is;
   }
--- a/b/boost/boost/unordered/detail/unique.hpp	2013-05-31 13:32:51.122254361 +0200
+++ a/b/boost/boost/unordered/detail/unique.hpp	2013-05-31 13:32:57.578278121 +0200
@@ -334,8 +334,6 @@
 
         value_type& operator[](key_type const& k)
         {
-            typedef typename value_type::second_type mapped_type;
-    
             std::size_t key_hash = this->hash(k);
             iterator pos = this->find_node(key_hash, k);
     
--- a/b/boost/boost/tuple/detail/tuple_basic.hpp	2013-05-31 13:31:21.682966336 +0200
+++ a/b/boost/boost/tuple/detail/tuple_basic.hpp	2013-05-31 13:32:44.067231648 +0200
@@ -225,7 +225,6 @@
 get(const cons<HT, TT>& c BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(int, N)) {
   typedef BOOST_DEDUCED_TYPENAME detail::drop_front<N>::BOOST_NESTED_TEMPLATE
       apply<cons<HT, TT> > impl;
-  typedef BOOST_DEDUCED_TYPENAME impl::type cons_element;
   return impl::call(c).head;
 }
 
--- misc/boost_1_44_0/boost/algorithm/string/detail/finder.hpp
+++ misc/build/boost_1_44_0/boost/algorithm/string/detail/finder.hpp
@@ -142,7 +142,6 @@
                     ForwardIteratorT End,
                     std::forward_iterator_tag ) const
                 {
-                    typedef ForwardIteratorT input_iterator_type;
                     typedef iterator_range<ForwardIteratorT> result_type;
 
                     first_finder_type first_finder(
@@ -263,7 +262,6 @@
                     ForwardIteratorT End,
                     unsigned int N) const
                 {
-                    typedef ForwardIteratorT input_iterator_type;
                     typedef iterator_range<ForwardIteratorT> result_type;
 
                     // Sanity check
@@ -298,7 +296,6 @@
                     ForwardIteratorT End,
                     unsigned int N) const
                 {
-                    typedef ForwardIteratorT input_iterator_type;
                     typedef iterator_range<ForwardIteratorT> result_type;
 
                     // Sanity check
@@ -362,7 +359,6 @@
                 unsigned int N,
                 std::random_access_iterator_tag )
             {
-                typedef ForwardIteratorT input_iterator_type;
                 typedef iterator_range<ForwardIteratorT> result_type;
 
                 if ( (End<=Begin) || ( static_cast<unsigned int>(End-Begin) < N ) )
@@ -436,7 +432,6 @@
                 unsigned int N,
                 std::random_access_iterator_tag )
             {
-                typedef ForwardIteratorT input_iterator_type;
                 typedef iterator_range<ForwardIteratorT> result_type;
 
                 if ( (End<=Begin) || ( static_cast<unsigned int>(End-Begin) < N ) )
--- misc/boost_1_44_0/boost/bind/arg.hpp
+++ misc/build/boost_1_44_0/boost/bind/arg.hpp
@@ -35,6 +35,8 @@
     {
         // static assert I == is_placeholder<T>::value
         typedef char T_must_be_placeholder[ I == is_placeholder<T>::value? 1: -1 ];
+        T_must_be_placeholder dummy; (void) dummy;
+            // silence -Werror=unused-local-typedefs (GCC 4.8)
     }
 };
 
--- misc/boost_1_44_0/boost/concept/detail/general.hpp
+++ misc/build/boost_1_44_0/boost/concept/detail/general.hpp
@@ -68,7 +68,9 @@
 #  define BOOST_CONCEPT_ASSERT_FN( ModelFnPtr )             \
     typedef ::boost::concepts::detail::instantiate<          \
     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
-      BOOST_PP_CAT(boost_concept_check,__LINE__)
+      BOOST_PP_CAT(boost_concept_check,__LINE__); \
+    BOOST_PP_CAT(boost_concept_check,__LINE__) BOOST_PP_CAT(boost_concept_check_dummy,__LINE__)(...)
+        // silence -Werror=unused-local-typedefs (GCC 4.8) (and resulting Clang -Werror,-Wvexing-parse)
 
 }}
 
--- misc/boost_1_44_0/boost/date_time/date_parsing.hpp
+++ misc/build/boost_1_44_0/boost/date_time/date_parsing.hpp
@@ -113,7 +113,6 @@
         spec_str = "mdy";
       }
 
-      typedef typename date_type::year_type year_type;
       typedef typename date_type::month_type month_type;
       unsigned pos = 0;
       unsigned short year(0), month(0), day(0);
@@ -159,7 +158,7 @@
     parse_undelimited_date(const std::string& s) {
       int offsets[] = {4,2,2};
       int pos = 0;
-      typedef typename date_type::year_type year_type;
+      //typedef typename date_type::year_type year_type;
       //typename date_type::ymd_type ymd((year_type::min)(),1,1);
       unsigned short y = 0, m = 0, d = 0;
 
--- misc/boost_1_44_0/boost/date_time/local_time/local_time_io.hpp
+++ misc/build/boost_1_44_0/boost/date_time/local_time/local_time_io.hpp
@@ -36,7 +36,6 @@
     boost::io::ios_flags_saver iflags(os);
     typedef local_date_time time_type;//::utc_time_type typename 
     typedef date_time::time_facet<time_type, CharT> custom_time_facet;
-    typedef std::time_put<CharT> std_time_facet;
     std::ostreambuf_iterator<CharT> oitr(os);
 
     if(std::has_facet<custom_time_facet>(os.getloc())) {
@@ -123,7 +122,6 @@
              const boost::local_time::local_time_period& p) {
     boost::io::ios_flags_saver iflags(os);
     typedef boost::date_time::time_facet<local_date_time, CharT> custom_facet;
-    typedef std::time_put<CharT> std_time_facet;
     std::ostreambuf_iterator<CharT> oitr(os);
     if (std::has_facet<custom_facet>(os.getloc())) {
       std::use_facet<custom_facet>(os.getloc()).put(oitr, os, os.fill(), p);
--- misc/boost_1_44_0/boost/date_time/posix_time/posix_time_io.hpp
+++ misc/build/boost_1_44_0/boost/date_time/posix_time/posix_time_io.hpp
@@ -47,7 +47,6 @@
              const ptime& p) {
     boost::io::ios_flags_saver iflags(os);
     typedef boost::date_time::time_facet<ptime, CharT> custom_ptime_facet;
-    typedef std::time_put<CharT>                  std_ptime_facet;
     std::ostreambuf_iterator<CharT> oitr(os);
     if (std::has_facet<custom_ptime_facet>(os.getloc()))
       std::use_facet<custom_ptime_facet>(os.getloc()).put(oitr, os, os.fill(), p);
@@ -114,7 +113,6 @@
              const boost::posix_time::time_period& p) {
     boost::io::ios_flags_saver iflags(os);
     typedef boost::date_time::time_facet<ptime, CharT> custom_ptime_facet;
-    typedef std::time_put<CharT>                  std_time_facet;
     std::ostreambuf_iterator<CharT> oitr(os);
     if (std::has_facet<custom_ptime_facet>(os.getloc())) {
       std::use_facet<custom_ptime_facet>(os.getloc()).put(oitr, os, os.fill(), p);
@@ -180,7 +178,6 @@
   {
     boost::io::ios_flags_saver iflags(os);
     typedef boost::date_time::time_facet<ptime, CharT> custom_ptime_facet;
-    typedef std::time_put<CharT>                  std_ptime_facet;
     std::ostreambuf_iterator<CharT> oitr(os);
     if (std::has_facet<custom_ptime_facet>(os.getloc()))
       std::use_facet<custom_ptime_facet>(os.getloc()).put(oitr, os, os.fill(), td);
--- misc/boost_1_44_0/boost/date_time/string_convert.hpp
+++ misc/build/boost_1_44_0/boost/date_time/string_convert.hpp
@@ -21,7 +21,6 @@
   inline
   std::basic_string<OutputT> convert_string_type(const std::basic_string<InputT>& inp_str)
   {
-    typedef std::basic_string<InputT> input_type;
     typedef std::basic_string<OutputT> output_type;
     output_type result;
     result.insert(result.begin(), inp_str.begin(), inp_str.end());
--- misc/boost_1_44_0/boost/date_time/strings_from_facet.hpp
+++ misc/build/boost_1_44_0/boost/date_time/strings_from_facet.hpp
@@ -35,7 +35,6 @@
 {
   typedef std::basic_string<charT> string_type;
   typedef std::vector<string_type> collection_type;
-  typedef std::basic_ostringstream<charT> ostream_type;
   typedef std::ostreambuf_iterator<charT> ostream_iter_type;
   typedef std::basic_ostringstream<charT> stringstream_type;
   typedef std::time_put<charT>           time_put_facet_type;
@@ -85,7 +84,6 @@
 {
   typedef std::basic_string<charT> string_type;
   typedef std::vector<string_type> collection_type;
-  typedef std::basic_ostringstream<charT> ostream_type;
   typedef std::ostreambuf_iterator<charT> ostream_iter_type;
   typedef std::basic_ostringstream<charT> stringstream_type;
   typedef std::time_put<charT>           time_put_facet_type;
--- misc/boost_1_44_0/boost/multi_array/concept_checks.hpp
+++ misc/build/boost_1_44_0/boost/multi_array/concept_checks.hpp
@@ -39,8 +39,6 @@
 
     template <typename Array, typename IdxGen, typename Call_Type>
     static void call(Array& a, const IdxGen& idgen, Call_Type c) {
-      typedef typename Array::index_range index_range_;
-      typedef typename Array::index index_;
       idgen_helper<N-1>::call(a,idgen[c],c);
     }
   };
@@ -50,8 +48,6 @@
 
     template <typename Array, typename IdxGen, typename Call_Type>
     static void call(Array& a, const IdxGen& idgen, Call_Type) {
-      typedef typename Array::index_range index_range_;
-      typedef typename Array::index index_;
       a[ idgen ];
     }
   };
--- misc/boost_1_44_0/boost/spirit/home/classic/core/non_terminal/impl/grammar.ipp
+++ misc/build/boost_1_44_0/boost/spirit/home/classic/core/non_terminal/impl/grammar.ipp
@@ -307,7 +307,6 @@
 #if !defined(BOOST_SPIRIT_SINGLE_GRAMMAR_INSTANCE)
         typedef impl::grammar_helper_base<GrammarT> helper_base_t;
         typedef grammar_helper_list<GrammarT> helper_list_t;
-        typedef typename helper_list_t::vector_t::reverse_iterator iterator_t;
 
         helper_list_t&  helpers =
 # if !defined(__GNUC__) || (__GNUC__ > 2)
@@ -318,6 +317,7 @@
 
 # if (defined(BOOST_MSVC) && (BOOST_MSVC < 1300)) \
     || defined(BOOST_INTEL_CXX_VERSION)
+        typedef typename helper_list_t::vector_t::reverse_iterator iterator_t;
         for (iterator_t i = helpers.rbegin(); i != helpers.rend(); ++i)
             (*i)->undefine(self);
 # else
--- misc/boost_1_44_0/boost/spirit/home/classic/core/primitives/primitives.hpp
+++ misc/build/boost_1_44_0/boost/spirit/home/classic/core/primitives/primitives.hpp
@@ -47,7 +47,6 @@
         typename parser_result<self_t, ScannerT>::type
         parse(ScannerT const& scan) const
         {
-            typedef typename parser_result<self_t, ScannerT>::type result_t;
             typedef typename ScannerT::value_t value_t;
             typedef typename ScannerT::iterator_t iterator_t;
 
--- misc/boost_1_44_0/boost/spirit/home/classic/error_handling/exceptions.hpp
+++ misc/build/boost_1_44_0/boost/spirit/home/classic/error_handling/exceptions.hpp
@@ -140,7 +140,6 @@
         parse(ScannerT const& scan) const
         {
             typedef typename parser_result<ParserT, ScannerT>::type result_t;
-            typedef typename ScannerT::iterator_t iterator_t;
 
             result_t hit = this->subject().parse(scan);
             if (!hit)
--- misc/boost_1_44_0/boost/spirit/home/classic/utility/functor_parser.hpp
+++ misc/build/boost_1_44_0/boost/spirit/home/classic/utility/functor_parser.hpp
@@ -49,8 +49,6 @@
         typename parser_result<self_t, ScannerT>::type
         parse(ScannerT const& scan) const
         {
-            typedef typename parser_result<self_t, ScannerT>::type result_t;
-            typedef typename ScannerT::value_t      value_t;
             typedef typename ScannerT::iterator_t   iterator_t;
 
             iterator_t const s(scan.first);