Index: /home/maik/workspace/boost/boost/archive/polymorphic_iarchive.hpp
===================================================================
--- /home/maik/workspace/boost/boost/archive/polymorphic_iarchive.hpp	(Revision 43953)
+++ /home/maik/workspace/boost/boost/archive/polymorphic_iarchive.hpp	(Arbeitskopie)
@@ -17,6 +17,7 @@
 //  See http://www.boost.org for updates, documentation, and revision history.
 
 #include <cstddef> // std::size_t
+#include <climits> // ULONG_MAX
 #include <boost/config.hpp>
 
 #if defined(BOOST_NO_STDC_NAMESPACE)
@@ -38,6 +39,9 @@
 // i.e. that its not a synonym for (unsigned) long
 // if there is no 64 bit int or if its the same as a long
 // we shouldn't define separate functions for int64 data types.
+#ifndef ULONG_MAX
+# error "ULONG_MAX is not defined"
+#endif
 #if defined(BOOST_NO_INT64_T) \
     || (ULONG_MAX != 0xffffffff && ULONG_MAX == 18446744073709551615u) // 2**64 - 1
 #   define BOOST_NO_INTRINSIC_INT64_T
Index: /home/maik/workspace/boost/boost/archive/polymorphic_oarchive.hpp
===================================================================
--- /home/maik/workspace/boost/boost/archive/polymorphic_oarchive.hpp	(Revision 43953)
+++ /home/maik/workspace/boost/boost/archive/polymorphic_oarchive.hpp	(Arbeitskopie)
@@ -18,6 +18,7 @@
 
 #include <cstddef> // size_t
 #include <string>
+#include <climits> // ULONG_MAX
 
 #include <boost/config.hpp>
 #if defined(BOOST_NO_STDC_NAMESPACE)
@@ -37,6 +38,9 @@
 // i.e. that its not a synonym for (unsigned) long
 // if there is no 64 bit int or if its the same as a long
 // we shouldn't define separate functions for int64 data types.
+#ifndef ULONG_MAX
+# error "ULONG_MAX is not defined"
+#endif
 #if defined(BOOST_NO_INT64_T) \
     || (ULONG_MAX != 0xffffffff && ULONG_MAX == 18446744073709551615u) // 2**64 - 1
 #   define BOOST_NO_INTRINSIC_INT64_T