diff --git a/indra/llcommon/llfasttimer.h b/indra/llcommon/llfasttimer.h
index 32f3561616cf2c1656f28c32cb4466dd0d5bda96..48461df6ae3028ec87965e71a25ccbfe931a2cdc 100644
--- a/indra/llcommon/llfasttimer.h
+++ b/indra/llcommon/llfasttimer.h
@@ -113,7 +113,7 @@ inline U64 LLFastTimer::getCPUClockCount64()
 	struct timespec tp;
 	
 #ifdef CLOCK_MONOTONIC // MONOTONIC supported at build-time?
-	if (-1 == clock_gettime(CLOCK_MONOTONIC,&tp)) // if MONOTONIC isn't supported at runtime, try REALTIME
+	if (-1 == clock_gettime(CLOCK_MONOTONIC,&tp)) // if MONOTONIC isn't supported at runtime then ouch, try REALTIME
 #endif
 		clock_gettime(CLOCK_REALTIME,&tp);
 
@@ -122,7 +122,7 @@ inline U64 LLFastTimer::getCPUClockCount64()
 
 inline U32 LLFastTimer::getCPUClockCount32()
 {
-	return (U32)LLFastTimer::getCPUClockCount64();
+	return (U32)(LLFastTimer::getCPUClockCount64() >> 8);
 }
 #endif // (LL_LINUX || LL_SOLARIS))
 
@@ -134,14 +134,14 @@ inline U32 LLFastTimer::getCPUClockCount32()
 {
 	U64 x;
 	__asm__ volatile (".byte 0x0f, 0x31": "=A"(x));
-	return (U32)x >> 8;
+	return (U32)(x >> 8);
 }
 
 inline U64 LLFastTimer::getCPUClockCount64()
 {
 	U64 x;
 	__asm__ volatile (".byte 0x0f, 0x31": "=A"(x));
-	return x >> 8;
+	return x;
 }
 #endif
 
@@ -154,7 +154,7 @@ inline U64 LLFastTimer::getCPUClockCount64()
 
 inline U32 LLFastTimer::getCPUClockCount32()
 {
-	return (U32)get_clock_count();
+	return (U32)(get_clock_count()>>8);
 }
 
 inline U64 LLFastTimer::getCPUClockCount64()
diff --git a/indra/llcommon/llfasttimer_class.cpp b/indra/llcommon/llfasttimer_class.cpp
index abcaee673eb6c7578ebef0616a2bacf8847b28fe..fae0a6687322afe8ea6b21e42d160cbf621e7248 100644
--- a/indra/llcommon/llfasttimer_class.cpp
+++ b/indra/llcommon/llfasttimer_class.cpp
@@ -226,12 +226,12 @@ void LLFastTimer::DeclareTimer::updateCachedPointers()
 
 //static
 #if LL_LINUX || LL_SOLARIS || ( LL_DARWIN && !(defined(__i386__) || defined(__amd64__)) )
-U64 LLFastTimer::countsPerSecond()
+U64 LLFastTimer::countsPerSecond() // counts per second for the *32-bit* timer
 {
-	return sClockResolution;
+	return sClockResolution >> 8;
 }
 #else // windows or x86-mac
-U64 LLFastTimer::countsPerSecond()
+U64 LLFastTimer::countsPerSecond() // counts per second for the *32-bit* timer
 {
 	static U64 sCPUClockFrequency = U64(CProcessor().GetCPUFrequency(50));