diff -Nru mongodb-src-r2.0.6.orig/util/background.cpp mongodb-src-r2.0.6/util/background.cpp --- mongodb-src-r2.0.6.orig/util/background.cpp 2012-06-04 09:42:54.000000000 -0400 +++ mongodb-src-r2.0.6/util/background.cpp 2012-08-01 16:38:45.664540031 -0400 @@ -89,7 +89,7 @@ if ( msTimeOut ) { // add msTimeOut millisecond to current time boost::xtime xt; - boost::xtime_get( &xt, boost::TIME_UTC ); + xt = boost::get_xtime(boost::get_system_time()); unsigned long long ns = msTimeOut * 1000000ULL; // milli to nano if ( xt.nsec + ns < 1000000000 ) { diff -Nru mongodb-src-r2.0.6.orig/util/concurrency/mutex.h mongodb-src-r2.0.6/util/concurrency/mutex.h --- mongodb-src-r2.0.6.orig/util/concurrency/mutex.h 2012-06-04 09:42:54.000000000 -0400 +++ mongodb-src-r2.0.6/util/concurrency/mutex.h 2012-08-01 16:38:45.659540017 -0400 @@ -29,7 +29,7 @@ inline boost::xtime incxtimemillis( long long s ) { boost::xtime xt; - boost::xtime_get(&xt, boost::TIME_UTC); + xt = boost::get_xtime(boost::get_system_time()); xt.sec += (int)( s / 1000 ); xt.nsec += (int)(( s % 1000 ) * 1000000); if ( xt.nsec >= 1000000000 ) { diff -Nru mongodb-src-r2.0.6.orig/util/queue.h mongodb-src-r2.0.6/util/queue.h --- mongodb-src-r2.0.6.orig/util/queue.h 2012-06-04 09:42:54.000000000 -0400 +++ mongodb-src-r2.0.6/util/queue.h 2012-08-01 16:38:45.648539990 -0400 @@ -82,7 +82,7 @@ Timer timer; boost::xtime xt; - boost::xtime_get(&xt, boost::TIME_UTC); + xt = boost::get_xtime(boost::get_system_time()); xt.sec += maxSecondsToWait; scoped_lock l( _lock ); diff -Nru mongodb-src-r2.0.6.orig/util/time_support.h mongodb-src-r2.0.6/util/time_support.h --- mongodb-src-r2.0.6.orig/util/time_support.h 2012-06-04 09:42:54.000000000 -0400 +++ mongodb-src-r2.0.6/util/time_support.h 2012-08-01 16:38:45.653540003 -0400 @@ -106,7 +106,7 @@ if ( s <= 0 ) return; boost::xtime xt; - boost::xtime_get(&xt, boost::TIME_UTC); + xt = boost::get_xtime(boost::get_system_time()); xt.sec += (int)( s / 1000000 ); xt.nsec += (int)(( s % 1000000 ) * 1000); if ( xt.nsec >= 1000000000 ) { @@ -118,13 +118,13 @@ #elif defined(__sunos__) inline void sleepsecs(int s) { boost::xtime xt; - boost::xtime_get(&xt, boost::TIME_UTC); + xt = boost::get_xtime(boost::get_system_time()); xt.sec += s; boost::thread::sleep(xt); } inline void sleepmillis(long long s) { boost::xtime xt; - boost::xtime_get(&xt, boost::TIME_UTC); + xt = boost::get_xtime(boost::get_system_time()); xt.sec += (int)( s / 1000 ); xt.nsec += (int)(( s % 1000 ) * 1000000); if ( xt.nsec >= 1000000000 ) { @@ -137,7 +137,7 @@ if ( s <= 0 ) return; boost::xtime xt; - boost::xtime_get(&xt, boost::TIME_UTC); + xt = boost::get_xtime(boost::get_system_time()); xt.sec += (int)( s / 1000000 ); xt.nsec += (int)(( s % 1000000 ) * 1000); if ( xt.nsec >= 1000000000 ) { @@ -202,24 +202,24 @@ #ifdef _WIN32 // no gettimeofday on windows inline unsigned long long curTimeMillis64() { boost::xtime xt; - boost::xtime_get(&xt, boost::TIME_UTC); + xt = boost::get_xtime(boost::get_system_time()); return ((unsigned long long)xt.sec) * 1000 + xt.nsec / 1000000; } inline Date_t jsTime() { boost::xtime xt; - boost::xtime_get(&xt, boost::TIME_UTC); + xt = boost::get_xtime(boost::get_system_time()); unsigned long long t = xt.nsec / 1000000; return ((unsigned long long) xt.sec * 1000) + t + getJSTimeVirtualSkew() + getJSTimeVirtualThreadSkew(); } inline unsigned long long curTimeMicros64() { boost::xtime xt; - boost::xtime_get(&xt, boost::TIME_UTC); + xt = boost::get_xtime(boost::get_system_time()); unsigned long long t = xt.nsec / 1000; return (((unsigned long long) xt.sec) * 1000000) + t; } inline unsigned curTimeMicros() { boost::xtime xt; - boost::xtime_get(&xt, boost::TIME_UTC); + xt = boost::get_xtime(boost::get_system_time()); unsigned t = xt.nsec / 1000; unsigned secs = xt.sec % 1024; return secs*1000000 + t;