diff --git a/indra/cmake/00-Common.cmake b/indra/cmake/00-Common.cmake
index 8262462ced4f26c042444c0f4fc2e1534c613907..20573c9495d8769472c04203896fdb4fb6421517 100644
--- a/indra/cmake/00-Common.cmake
+++ b/indra/cmake/00-Common.cmake
@@ -144,6 +144,8 @@ if (LINUX)
       -fno-strict-aliasing
       -fsigned-char
       -g
+      -msse2
+      -mfpmath=sse
       -pthread
       )
 
@@ -163,10 +165,6 @@ if (LINUX)
       link_directories(/usr/lib/mysql4/mysql)
     endif (EXISTS /usr/lib/mysql4/mysql)
 
-    add_definitions(
-        -msse2
-        -mfpmath=sse
-        )
   endif (SERVER)
 
   if (VIEWER)
diff --git a/indra/llmath/lloctree.h b/indra/llmath/lloctree.h
index 432e9fbcd8a02a8aaf09e0b411840312cb7f6de2..73910ef98df38bf0663f496bc171c47495ef9be3 100644
--- a/indra/llmath/lloctree.h
+++ b/indra/llmath/lloctree.h
@@ -206,7 +206,7 @@ class LLOctreeNode : public LLTreeNode<T>
 	{
 		const LLVector4a& pos = data->getPositionGroup();
 
-		LLVector4a gt = pos.greaterThan(center);
+		LLVector4Logical gt = pos.greaterThan(center);
 
 		LLVector4a up;
 		up = _mm_and_ps(size, gt);
diff --git a/indra/llmath/llvector4a.h b/indra/llmath/llvector4a.h
index 76a3e999ce54e38f5079481a8597753355c91c48..a80e9b49dd78e26095786c6ed7f940e37d31d664 100644
--- a/indra/llmath/llvector4a.h
+++ b/indra/llmath/llvector4a.h
@@ -153,7 +153,6 @@ class LLVector4a
 
 	// Prefer this method for read-only access to a single element. Prefer the templated version if the elem is known at compile time.
 	template <int N> LL_FORCE_INLINE LLSimdScalar getScalarAt() const;
-	template <> LL_FORCE_INLINE LLSimdScalar getScalarAt<0>() const;
 
 	// Set to an x, y, z and optional w provided
 	inline void set(F32 x, F32 y, F32 z, F32 w = 0.f);
@@ -322,6 +321,8 @@ class LLVector4a
 	LLQuad mQ;
 };
 
+template <> LL_FORCE_INLINE LLSimdScalar LLVector4a::getScalarAt<0>() const;
+
 inline void update_min_max(LLVector4a& min, LLVector4a& max, const LLVector4a& p)
 {
 	min.setMin(min, p);
diff --git a/indra/llmath/tests/llquaternion_test.cpp b/indra/llmath/tests/llquaternion_test.cpp
index 2d27d1eb32d85f3b9c1f7a1fbd42df12aed92b6e..451b0ecc601423b565ed853f8a027d7213c2a7af 100644
--- a/indra/llmath/tests/llquaternion_test.cpp
+++ b/indra/llmath/tests/llquaternion_test.cpp
@@ -35,12 +35,12 @@
 #include "linden_common.h"
 #include "../test/lltut.h"
 
-#include "../llquaternion.h"
 #include "../v4math.h"
 #include "../v3math.h"
 #include "../v3dmath.h"
 #include "../m4math.h"
 #include "../m3math.h"
+#include "../llquaternion.h"
 
 namespace tut
 {
diff --git a/indra/llmath/tests/v3dmath_test.cpp b/indra/llmath/tests/v3dmath_test.cpp
index 894b6200f5dc1a2a3059ddaec4669bcdd8f3b6ac..734b8f8b8077e8fe26505b4d8b1ab0809df87868 100644
--- a/indra/llmath/tests/v3dmath_test.cpp
+++ b/indra/llmath/tests/v3dmath_test.cpp
@@ -36,11 +36,11 @@
 #include "llsd.h"
 #include "../test/lltut.h"
 
-#include "../llquaternion.h"
 #include "../m3math.h"
 #include "../v4math.h"
 #include "../v3dmath.h"
 #include "../v3dmath.h"
+#include "../llquaternion.h"
 
 namespace tut
 {
diff --git a/indra/llmath/tests/v3math_test.cpp b/indra/llmath/tests/v3math_test.cpp
index d5c8dd2f9cdc883dbc5286892b31265a40c3cdc5..e6354c2b8637467d4ff5aecdc9caa12670ea121f 100644
--- a/indra/llmath/tests/v3math_test.cpp
+++ b/indra/llmath/tests/v3math_test.cpp
@@ -36,12 +36,12 @@
 #include "../test/lltut.h"
 #include "llsd.h"
 
-#include "../llquaternion.h"
-#include "../llquantize.h"
 #include "../v3dmath.h"
 #include "../m3math.h"
 #include "../v4math.h"
 #include "../v3math.h"
+#include "../llquaternion.h"
+#include "../llquantize.h"
 
 
 namespace tut
diff --git a/indra/llmath/tests/v4math_test.cpp b/indra/llmath/tests/v4math_test.cpp
index e919c90efa72006fb38fba1a65c4727bd436a51c..61fc10848868281309960748be280e3d4e08e13e 100644
--- a/indra/llmath/tests/v4math_test.cpp
+++ b/indra/llmath/tests/v4math_test.cpp
@@ -36,9 +36,9 @@
 #include "../test/lltut.h"
 #include "llsd.h"
 
-#include "../llquaternion.h"
 #include "../m4math.h"
 #include "../v4math.h"
+#include "../llquaternion.h"
 
 namespace tut
 {
diff --git a/indra/newview/llfloatermodelpreview.cpp b/indra/newview/llfloatermodelpreview.cpp
index 5dd983d818c8ed74a610a2a17b8c365c98a1de87..91dfb9fc1c06dae9739b7bfd87ef8f499d59585f 100644
--- a/indra/newview/llfloatermodelpreview.cpp
+++ b/indra/newview/llfloatermodelpreview.cpp
@@ -2656,8 +2656,8 @@ void LLModelPreview::updateStatusMessages()
 					const F32 ratio = 0.5f;
 					const S32 required_verts = 128;
 
-					F32 scaler = powf(0.5f, lod_high-lod);
-					S32 max_verts = verts[lod_high][i]*scaler;
+					F32 scaler = powf(ratio, lod_high-lod);
+					S32 max_verts = (S32)(verts[lod_high][i]*scaler);
 
 					if (max_verts > required_verts)
 					{ //some model in this slot might have more than 128 vertices
@@ -2691,8 +2691,8 @@ void LLModelPreview::updateStatusMessages()
 				{
 					const F32 ratio = 0.5f;
 					
-					F32 scaler = powf(0.5f, lod_high-lod);
-					S32 max_verts = verts[lod_high][i]*scaler;
+					F32 scaler = powf(ratio, lod_high-lod);
+					S32 max_verts = (S32)(verts[lod_high][i]*scaler);
 
 					if (verts[lod][i] > max_verts)
 					{