diff --git a/indra/llappearance/lldriverparam.cpp b/indra/llappearance/lldriverparam.cpp
index 05d26fbe7aa66230891d7b51511b5280c0cc2032..f49ad9826fba254cbecd9e5862e374c4b68976c4 100644
--- a/indra/llappearance/lldriverparam.cpp
+++ b/indra/llappearance/lldriverparam.cpp
@@ -85,7 +85,7 @@ BOOL LLDriverParamInfo::parseXml(LLXmlTreeNode* node)
 
 			// Push these on the front of the deque, so that we can construct
 			// them in order later (faster)
-			mDrivenInfoList.push_front( LLDrivenEntryInfo( driven_id, min1, max1, max2, min2 ) );
+			mDrivenInfoList.emplace_front( LLDrivenEntryInfo( driven_id, min1, max1, max2, min2 ) );
 		}
 		else
 		{
@@ -500,7 +500,7 @@ BOOL LLDriverParam::linkDrivenParams(visual_param_mapper mapper, BOOL only_cross
 			bool push = param && (!only_cross_params || param->getCrossWearable());
 			if (push)
 			{
-				mDriven.push_back(LLDrivenEntry( param, driven_info ));
+				mDriven.emplace_back(LLDrivenEntry( param, driven_info ));
 			}
 			else
 			{
diff --git a/indra/llappearance/llpolymorph.cpp b/indra/llappearance/llpolymorph.cpp
index ce7010984a0c74995873c02ce120116889c2141d..c6f5cac4b8aea2fb699e38de8bcfd2b6ac063cf2 100644
--- a/indra/llappearance/llpolymorph.cpp
+++ b/indra/llappearance/llpolymorph.cpp
@@ -303,7 +303,7 @@ BOOL LLPolyMorphTargetInfo::parseXml(LLXmlTreeNode* node)
 				static LLStdStringHandle pos_string = LLXmlTree::addAttributeString("pos");
 				child_node->getFastAttributeVector3(pos_string, pos);
 
-				mVolumeInfoList.push_back(LLPolyVolumeMorphInfo(volume_name,scale,pos));
+				mVolumeInfoList.emplace_back(LLPolyVolumeMorphInfo(volume_name,scale,pos));
 			}
 		}
 	}
@@ -369,7 +369,7 @@ BOOL LLPolyMorphTarget::setInfo(LLPolyMorphTargetInfo* info)
 		{
 			if (avatarp->mCollisionVolumes[i].getName() == volume_info->mName)
 			{
-				mVolumeMorphs.push_back(
+				mVolumeMorphs.emplace_back(
 					LLPolyVolumeMorph(&avatarp->mCollisionVolumes[i],
 														  volume_info->mScale,
 														  volume_info->mPos));
diff --git a/indra/llappearance/llpolyskeletaldistortion.cpp b/indra/llappearance/llpolyskeletaldistortion.cpp
index ae38c25dbf1f316d7fa7f44e1e0047d39e217360..0ec45bb1ca7fd70671ee9e4f8572223471f6cba2 100644
--- a/indra/llappearance/llpolyskeletaldistortion.cpp
+++ b/indra/llappearance/llpolyskeletaldistortion.cpp
@@ -90,7 +90,7 @@ BOOL LLPolySkeletalDistortionInfo::parseXml(LLXmlTreeNode* node)
                         {
                                 haspos = TRUE;
                         }
-                        mBoneInfoList.push_back(LLPolySkeletalBoneInfo(name, scale, pos, haspos));
+                        mBoneInfoList.emplace_back(LLPolySkeletalBoneInfo(name, scale, pos, haspos));
                 }
                 else
                 {
diff --git a/indra/llappearance/lltexlayer.cpp b/indra/llappearance/lltexlayer.cpp
index c90b11ae7129a36090246c311036a093e9e8d48d..89b4e0295fedb2d760bcd6770769df09f19cbfb2 100644
--- a/indra/llappearance/lltexlayer.cpp
+++ b/indra/llappearance/lltexlayer.cpp
@@ -763,7 +763,7 @@ BOOL LLTexLayerInfo::parseXml(LLXmlTreeNode* node)
 			BOOL invert = FALSE;
 			static LLStdStringHandle invert_string = LLXmlTree::addAttributeString("invert");
 			maskNode->getFastAttributeBOOL(invert_string, invert);			
-			mMorphNameList.push_back(std::pair<std::string,BOOL>(morph_name,invert));
+			mMorphNameList.emplace_back(std::pair<std::string,BOOL>(morph_name,invert));
 		}
 	}
 
diff --git a/indra/llcommon/llallocator_heap_profile.cpp b/indra/llcommon/llallocator_heap_profile.cpp
index b2eafde1aaf4b0e24928175229ae802e8d4f4aab..76cb03f6058f5f42daad05395df0605717281ec5 100644
--- a/indra/llcommon/llallocator_heap_profile.cpp
+++ b/indra/llcommon/llallocator_heap_profile.cpp
@@ -112,7 +112,7 @@ void LLAllocatorHeapProfile::parse(std::string const & prof_text)
 	{
 		++j; // skip the '@'
 
-		mLines.push_back(line(live_count, live_size, tot_count, tot_size));
+		mLines.emplace_back(line(live_count, live_size, tot_count, tot_size));
 		line & current_line = mLines.back();
 		
 		for(; j != line_elems.end(); ++j)
diff --git a/indra/llcommon/llsd.cpp b/indra/llcommon/llsd.cpp
index e9f6bb80f17f2c9729833a0f61eb1b301faefab8..14fb7cc64a77fc32867a892ac00bac1d4aaff3c6 100644
--- a/indra/llcommon/llsd.cpp
+++ b/indra/llcommon/llsd.cpp
@@ -441,7 +441,7 @@ namespace
 
 	void ImplMap::insert(const LLSD::String& k, const LLSD& v)
 	{
-		mData.insert(DataMap::value_type(k, v));
+		mData.emplace(DataMap::value_type(k, v));
 	}
 	
 	void ImplMap::erase(const LLSD::String& k)