diff --git a/indra/llcommon/lltimer.cpp b/indra/llcommon/lltimer.cpp
index 693809b622f01dfc3bb03f3214ae3c30cc22109c..25383fc4d84931acf3ae5ee4d72b33bd454d2093 100755
--- a/indra/llcommon/lltimer.cpp
+++ b/indra/llcommon/lltimer.cpp
@@ -281,7 +281,18 @@ LLTimer::LLTimer()
 }
 
 LLTimer::~LLTimer()
+{}
+
+// static
+void LLTimer::initClass()
+{
+	if (!sTimer) sTimer = new LLTimer;
+}
+
+// static
+void LLTimer::cleanupClass()
 {
+	delete sTimer; sTimer = NULL;
 }
 
 // static
diff --git a/indra/llcommon/lltimer.h b/indra/llcommon/lltimer.h
index 9e464c4b1af622335ca88df7d72155441850d654..9f1f243dbb585ec5b296869750b39d8de58b305f 100755
--- a/indra/llcommon/lltimer.h
+++ b/indra/llcommon/lltimer.h
@@ -62,14 +62,14 @@ class LL_COMMON_API LLTimer
 	LLTimer();
 	~LLTimer();
 
-	static void initClass() { if (!sTimer) sTimer = new LLTimer; }
-	static void cleanupClass() { delete sTimer; sTimer = NULL; }
+	static void initClass();
+	static void cleanupClass();
 
 	// Return a high precision number of seconds since the start of
 	// this application instance.
 	static LLUnitImplicit<F64, LLUnits::Seconds> getElapsedSeconds()
 	{
-		return sTimer->getElapsedTimeF64();
+		return sTimer ? sTimer->getElapsedTimeF64() : 0.0;
 	}
 
 	// Return a high precision usec since epoch
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index 8ad5784f40875f599c0f765d1d0f16e61eefe97d..9193037a6c8e42b3546dcab8ebc77ad118abf4e2 100755
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -662,7 +662,7 @@ LLTextureFetch* LLAppViewer::sTextureFetch = NULL;
 
 std::string getRuntime()
 {
-	return llformat("%g", LLTimer::getElapsedSeconds());
+	return llformat("%g", LLTimer::getElapsedSeconds().value());
 }
 
 LLAppViewer::LLAppViewer()