diff -rupN boost_1_43_0/boost/smart_ptr/detail/spinlock_pool.hpp boost_vms_1_43_0/boost/smart_ptr/detail/spinlock_pool.hpp --- boost_1_43_0/boost/smart_ptr/detail/spinlock_pool.hpp 2009-03-02 18:22:16.000000000 +0200 +++ boost_vms_1_43_0/boost/smart_ptr/detail/spinlock_pool.hpp 2010-07-11 14:12:55.000000000 +0300 @@ -41,7 +41,11 @@ public: static spinlock & spinlock_for( void const * pv ) { + #if defined(__VMS) && __INITIAL_POINTER_SIZE == 64 + std::size_t i = reinterpret_cast< unsigned long long >( pv ) % 41; + #else std::size_t i = reinterpret_cast< std::size_t >( pv ) % 41; + #endif return pool_[ i ]; }