diff --git a/indra/llxuixml/llinitparam.h b/indra/llxuixml/llinitparam.h
index 575e8231bd104b374d2c0feb078f49860c2b906f..2edb9b98c76e0fcfcb5a4ac5f832b1d63d78f0c3 100644
--- a/indra/llxuixml/llinitparam.h
+++ b/indra/llxuixml/llinitparam.h
@@ -945,6 +945,12 @@ namespace LLInitParam
 			return static_cast<self_t&>(param_value_t::operator =(name));
 		}
 
+		self_t& operator =(value_assignment_t val)
+		{
+			set(val);
+			return *this;
+		}
+
 	protected:
 		static bool mergeWith(Param& dst, const Param& src, bool overwrite)
 		{
@@ -1086,6 +1092,12 @@ namespace LLInitParam
 			return static_cast<self_t&>(param_value_t::operator =(name));
 		}
 
+		self_t& operator =(value_assignment_t val)
+		{
+			set(val);
+			return *this;
+		}
+
 		// propagate changed status up to enclosing block
 		/*virtual*/ void paramChanged(const Param& changed_param, bool user_provided)
 		{ 
@@ -1290,12 +1302,6 @@ namespace LLInitParam
 		}
 
 	protected:
-		self_t& operator=(const self_t& other)
-		{
-			mValues = other.mValues;
-			return *this;
-		}
-
 		static bool mergeWith(Param& dst, const Param& src, bool overwrite)
 		{
 			const self_t& src_typed_param = static_cast<const self_t&>(src);
@@ -1489,11 +1495,6 @@ namespace LLInitParam
 		}
 
 	protected:
-		self_t& operator=(const self_t& other)
-		{
-			mValues = other.mValues;
-			return *this;
-		}
 
 		static bool mergeWith(Param& dst, const Param& src, bool overwrite)
 		{