diff --git a/indra/llui/llui.cpp b/indra/llui/llui.cpp
index ec9220a98420dc4a2cd7a9d89f3a85131209adf4..f253857851549eb61309540d0c103e019d511199 100644
--- a/indra/llui/llui.cpp
+++ b/indra/llui/llui.cpp
@@ -1918,7 +1918,7 @@ namespace LLInitParam
 		declare("blue", LLColor4::blue);
 	}
 
-	bool ParamCompare<const LLFontGL*, boost::false_type>::equals(const LLFontGL* a, const LLFontGL* b)
+	bool ParamCompare<const LLFontGL*, false>::equals(const LLFontGL* a, const LLFontGL* b)
 	{
 		return !(a->getFontDesc() < b->getFontDesc())
 			&& !(b->getFontDesc() < a->getFontDesc());
diff --git a/indra/llui/llui.h b/indra/llui/llui.h
index db18957a97f807b557f3c4ec1871fa238129dbe1..6ab78ab3cd906535967fc7b107533045d0646e6f 100644
--- a/indra/llui/llui.h
+++ b/indra/llui/llui.h
@@ -437,7 +437,7 @@ namespace LLInitParam
 	};
 
 	template<>
-	struct ParamCompare<const LLFontGL*, boost::false_type>
+	struct ParamCompare<const LLFontGL*, false>
 	{
 		static bool equals(const LLFontGL* a, const LLFontGL* b);
 	};
diff --git a/indra/llui/lluiimage.cpp b/indra/llui/lluiimage.cpp
index 51828e5731114bfae9eb754133d9c45515330dac..6c1a32722f1140e2a34ca55214823b442fd0dc64 100644
--- a/indra/llui/lluiimage.cpp
+++ b/indra/llui/lluiimage.cpp
@@ -152,7 +152,7 @@ namespace LLInitParam
 	}
 
 	
-	bool ParamCompare<LLUIImage*, boost::false_type>::equals(
+	bool ParamCompare<LLUIImage*, false>::equals(
 		LLUIImage* const &a,
 		LLUIImage* const &b)
 	{
diff --git a/indra/llui/lluiimage.h b/indra/llui/lluiimage.h
index 9f505bea7912b610e2d3eb1a4c9e372a6df9afd6..9d734bcfdf3a563ee7cc42a3372f57a729c8c160 100644
--- a/indra/llui/lluiimage.h
+++ b/indra/llui/lluiimage.h
@@ -108,7 +108,7 @@ namespace LLInitParam
 	// Need custom comparison function for our test app, which only loads
 	// LLUIImage* as NULL.
 	template<>
-	struct ParamCompare<LLUIImage*, boost::false_type>
+	struct ParamCompare<LLUIImage*, false>
 	{
 		static bool equals(LLUIImage* const &a, LLUIImage* const &b);
 	};
diff --git a/indra/llxuixml/llinitparam.cpp b/indra/llxuixml/llinitparam.cpp
index 1abd411f3733faf076a83f68483405c06ebc905e..6dd1f93baf2180fd989d96f247fadc203792ec64 100644
--- a/indra/llxuixml/llinitparam.cpp
+++ b/indra/llxuixml/llinitparam.cpp
@@ -500,7 +500,7 @@ namespace LLInitParam
 		return param_changed;
 	}
 
-	bool ParamCompare<LLSD, boost::false_type>::equals(const LLSD &a, const LLSD &b)
+	bool ParamCompare<LLSD, false>::equals(const LLSD &a, const LLSD &b)
 	{
 		return false;
 	}
diff --git a/indra/llxuixml/llinitparam.h b/indra/llxuixml/llinitparam.h
index 193d8c1f64ae046e3a773819ee066c9359045e69..b280dfdf63ead5f8806d5aceeed8ee7e40566117 100644
--- a/indra/llxuixml/llinitparam.h
+++ b/indra/llxuixml/llinitparam.h
@@ -46,7 +46,7 @@
 
 namespace LLInitParam
 {
-	template <typename T, typename IS_BOOST_FUNCTION = boost::is_convertible<T, boost::function_base>::type >
+	template <typename T, bool IS_BOOST_FUNCTION = boost::is_convertible<T, boost::function_base>::value >
     struct ParamCompare 
 	{
     	static bool equals(const T &a, const T &b)
@@ -57,7 +57,7 @@ namespace LLInitParam
     
 	// boost function types are not comparable
 	template<typename T>
-	struct ParamCompare<T, boost::true_type>
+	struct ParamCompare<T, true>
 	{
 		static bool equals(const T&a, const T &b)
 		{
@@ -1818,7 +1818,7 @@ namespace LLInitParam
 	};
 
 	template<> 
-	struct ParamCompare<LLSD, boost::false_type>
+	struct ParamCompare<LLSD, false>
 	{
 		static bool equals(const LLSD &a, const LLSD &b);
 	};
diff --git a/indra/llxuixml/lluicolor.cpp b/indra/llxuixml/lluicolor.cpp
index 0065edb3094f17b0fe68c795a9d35d8dea6a2dd1..856c05cf4af5d660b575dad16756db5552371549 100644
--- a/indra/llxuixml/lluicolor.cpp
+++ b/indra/llxuixml/lluicolor.cpp
@@ -58,7 +58,7 @@ bool LLUIColor::isReference() const
 namespace LLInitParam
 {
 	// used to detect equivalence with default values on export
-	bool ParamCompare<LLUIColor, boost::false_type>::equals(const LLUIColor &a, const LLUIColor &b)
+	bool ParamCompare<LLUIColor, false>::equals(const LLUIColor &a, const LLUIColor &b)
 	{
 		// do not detect value equivalence, treat pointers to colors as distinct from color values
 		return (a.mColorPtr == NULL && b.mColorPtr == NULL ? a.mColor == b.mColor : a.mColorPtr == b.mColorPtr);
diff --git a/indra/llxuixml/lluicolor.h b/indra/llxuixml/lluicolor.h
index aff81a695d809ddc161ae216cde4f631bb589a1e..fb9c6b916104bd03066a74bdd4c2cfb6c34d7883 100644
--- a/indra/llxuixml/lluicolor.h
+++ b/indra/llxuixml/lluicolor.h
@@ -15,7 +15,7 @@
 
 namespace LLInitParam
 {
-	template<typename T, typename IS_BOOST_FUNCTION>
+	template<typename T, bool>
 	struct ParamCompare;
 }
 
@@ -37,7 +37,7 @@ class LLUIColor
 	bool isReference() const;
 
 private:
-	friend struct LLInitParam::ParamCompare<LLUIColor, boost::false_type>;
+	friend struct LLInitParam::ParamCompare<LLUIColor, false>;
 
 	const LLColor4* mColorPtr;
 	LLColor4 mColor;
@@ -46,7 +46,7 @@ class LLUIColor
 namespace LLInitParam
 {
 	template<>
-	struct ParamCompare<class LLUIColor, boost::false_type>
+	struct ParamCompare<LLUIColor, false>
 	{
 		static bool equals(const class LLUIColor& a, const class LLUIColor& b);
 	};