diff -ru overload.orig/boost/overload/detail/functor_has_signature.hpp overload/boost/overload/detail/functor_has_signature.hpp
--- overload.orig/boost/overload/detail/functor_has_signature.hpp	2007-11-01 09:18:04.000000000 +0100
+++ overload/boost/overload/detail/functor_has_signature.hpp	2007-11-01 09:30:18.000000000 +0100
@@ -23,6 +23,7 @@
 
 struct member_func_non_const_tag {};
 
+// g++-3.3: warning: all member functions in class are private
 template< typename FunctionObj, typename Sig, 
           typename const_tag = member_func_non_const_tag >
 struct func_obj_has_signature
@@ -44,6 +45,7 @@
 
 struct member_func_const_tag {}; // for member functions of kind "R f(..) const"
 
+// g++-3.3: warning: all member functions in class are private
 template<typename FunctionObj, typename Sig >
 struct func_obj_has_signature<FunctionObj, Sig, member_func_const_tag>
 {
@@ -51,6 +53,7 @@
     typedef typename memb_func_trait<Sig FunctionObj::*>::const_type 
             memb_func_ptr;
     template<memb_func_ptr> struct helper;
+    // g++-3.3: internal compiler error: Segmentation :-))
     template<typename T> static char check(helper<&T::operator()>* );
     template<typename T> static char (& check(...))[2];
   public:
diff -ru overload.orig/boost/overload/overload_impl.hpp overload/boost/overload/overload_impl.hpp
--- overload.orig/boost/overload/overload_impl.hpp	2007-11-01 09:18:04.000000000 +0100
+++ overload/boost/overload/overload_impl.hpp	2007-11-01 09:18:34.000000000 +0100
@@ -9,6 +9,8 @@
 #ifndef _BOOST_OVERLOAD_IMPL_HPP_
 #define _BOOST_OVERLOAD_IMPL_HPP_
 
+// TODO: Move *Impl file into detail!?
+
 #include "detail/overload_base.hpp"
 #include "detail/trait_by_index.hpp"
 #include "detail/trait_by_signature.hpp"
diff -ru overload.orig/README_FIRST.TXT overload/README_FIRST.TXT
--- overload.orig/README_FIRST.TXT	2007-11-01 09:18:04.000000000 +0100
+++ overload/README_FIRST.TXT	2007-11-01 09:20:20.000000000 +0100
@@ -5,18 +5,18 @@
 Copyright (c) 2007 Marco Cecchetti
 
 Use, modification and distribution of this library is 
-subject to the Boost Software License, Version 1.0 .
-(See accompanying file LICENSE_1_0.txt or 
+subject to the Boost Software License, Version 1.0.
+(See accompanying file LICENSE_1_0.txt (NOT FOUND IN ARCHIVE!) or 
 copy at http://www.boost.org/LICENSE_1_0.txt)
 =================================================================
 
 =================================================================
 WARNING 
 this library is a proof of concept implementation only,
-and it comes without ABSOLUTELY ANY WARRANTY !
+and it comes without ABSOLUTELY ANY WARRANTY!
 =================================================================
 
-WARNING: at present Boost Overload IS NOT a Boost library !
+WARNING: at present Boost Overload IS NOT a Boost library!
 ===========================================================
 
 =================================================================
@@ -102,7 +102,7 @@
 MS VC++ 7.1    under Windows           fail
 
 
-description
+Description
 ===========
 I went on working on the second implementation only.
 The source code has gone through refactoring and modularization.
@@ -146,7 +146,7 @@
 
 tested on gcc 4.1.2 under Linux
 
-description
+Description
 ===========
 The archive includes two implementations.
 
diff -ru overload.orig/test/test_free_and_member_overloaded_functions.hpp overload/test/test_free_and_member_overloaded_functions.hpp
--- overload.orig/test/test_free_and_member_overloaded_functions.hpp	2007-11-01 09:18:04.000000000 +0100
+++ overload/test/test_free_and_member_overloaded_functions.hpp	2007-11-01 09:44:34.000000000 +0100
@@ -2,6 +2,9 @@
 #ifndef _TEST_FREE_AND_MEMBER_OVERLOADED_FUNCTIONS_HPP_
 #define _TEST_FREE_AND_MEMBER_OVERLOADED_FUNCTIONS_HPP_
 
+// missing includes such as
+#include "boost/overload/overload.hpp"
+// also for other header files in test/!
 
 void test07()
 {
diff -ru overload.orig/test/test_signature_deduction.hpp overload/test/test_signature_deduction.hpp
--- overload.orig/test/test_signature_deduction.hpp	2007-11-01 09:18:04.000000000 +0100
+++ overload/test/test_signature_deduction.hpp	2007-11-01 09:54:20.000000000 +0100
@@ -19,7 +19,7 @@
     bar1 b1; bar2 b2;
 
     overload_type f(f4, f2);
-    f.set(f0, f5, f1, f3);
+    f.set(f0, f5, f1, f3); // leads also to the internal compiler error with g++ 3.3
 
     f( "Hello",  ", ",  "world !" );
 
diff -ru overload.orig/test/test_trait_by_functor.hpp overload/test/test_trait_by_functor.hpp
--- overload.orig/test/test_trait_by_functor.hpp	2007-11-01 09:18:04.000000000 +0100
+++ overload/test/test_trait_by_functor.hpp	2007-11-01 09:52:41.000000000 +0100
@@ -9,7 +9,10 @@
                         sig5_t, sig6_t, sig7_t, sig8_t, sig9_t> 
         overload_type;
 
+#if !(defined(__GNUC__) && __GNUC__ == 3 && __GNUC_MINOR__ == 3)
+// Avoid an internal compiler error with g++ 3.3
 BOOST_STATIC_ASSERT(( ovdtl::functor_has_signature<f4_t, sig4_t>::value ));
+#endif
 
 }
 
@@ -24,19 +27,25 @@
             overload_type::base_type
     >::value
 ));
+#if !(defined(__GNUC__) && __GNUC__ == 3 && __GNUC_MINOR__ == 3)
+// Avoid an internal compiler error with g++ 3.3
 BOOST_STATIC_ASSERT(( 
     is_same<ovdtl::signature_by_functor<f5_t, ovdtl::base_by_functor<f0_t, overload_type>::type >::type, 
             sig5_t
     >::value 
 ));
+#endif
 BOOST_STATIC_ASSERT(( 
     is_same<ovdtl::function_by_functor<f1_t, overload_type>::type, 
             boost::function<sig1_t> 
     >::value 
 ));
 BOOST_STATIC_ASSERT(( ovdtl::index_by_functor<f2_t, overload_type>::value == 2 ));
+#if !(defined(__GNUC__) && __GNUC__ == 3 && __GNUC_MINOR__ == 3)
+// Avoid an internal compiler error with g++ 3.3
 BOOST_STATIC_ASSERT(( ovdtl::has_functor_signature<f4_t, overload_type>::value ));
 BOOST_STATIC_ASSERT(( !ovdtl::has_functor_signature<f7_t, overload_type>::value ));
+#endif
 
 }
 
