diff --git a/indra/llappearance/llavatarappearance.h b/indra/llappearance/llavatarappearance.h
index 5aff01e859e9c49ac9d72fe37ad12a7d50e2f236..47098bee21f01dc36adb1dfab9f93ea2b93433da 100644
--- a/indra/llappearance/llavatarappearance.h
+++ b/indra/llappearance/llavatarappearance.h
@@ -35,6 +35,8 @@
 #include "llviewervisualparam.h"
 #include "llxmltree.h"
 
+#include <robin_hood.h>
+
 class LLTexLayerSet;
 class LLTexGlobalColor;
 class LLTexGlobalColorInfo;
@@ -138,7 +140,7 @@ class LLAvatarAppearance : public LLCharacter
 	LLVector3			mHeadOffset; // current head position
 	LLAvatarJoint		*mRoot;
 
-	typedef boost::unordered_map<std::string, LLJoint*> joint_map_t;
+	typedef robin_hood::unordered_map<std::string, LLJoint*> joint_map_t;
 	joint_map_t			mJointMap;
 
     typedef std::map<std::string, LLVector3> joint_state_map_t;
diff --git a/indra/llcharacter/llanimationstates.h b/indra/llcharacter/llanimationstates.h
index 1b13a0bf54446f30ac384b7f5565aea45527e88e..32693d66e1f1f337ac92d75ce6e7bbc9bad50675 100644
--- a/indra/llcharacter/llanimationstates.h
+++ b/indra/llcharacter/llanimationstates.h
@@ -28,7 +28,7 @@
 #define LL_LLANIMATIONSTATES_H
 
 #include <map>
-#include <boost/unordered_map.hpp>
+#include <robin_hood.h>
 
 #include "llstringtable.h"
 #include "lluuid.h"
@@ -204,7 +204,7 @@ class LLAnimationLibrary
 private:
 	LLStringTable mAnimStringTable;
 
-	typedef boost::unordered_map<LLUUID, char *> anim_map_t;
+	typedef robin_hood::unordered_map<LLUUID, char *> anim_map_t;
 	anim_map_t mAnimMap;
 
 public:
diff --git a/indra/llcharacter/llcharacter.h b/indra/llcharacter/llcharacter.h
index f30db74676d4fc174155074b41a16956a91a0c66..04a76e725c406891e77b3e876f37c3b46f9b660c 100644
--- a/indra/llcharacter/llcharacter.h
+++ b/indra/llcharacter/llcharacter.h
@@ -39,7 +39,7 @@
 #include "llpointer.h"
 #include "llrefcount.h"
 
-#include <boost/unordered_map.hpp>
+#include <robin_hood.h>
 
 class LLPolyMesh;
 
@@ -268,7 +268,7 @@ class LLCharacter
 protected:
 	LLMotionController	mMotionController;
 
-	typedef boost::unordered_map<std::string, void *> animation_data_map_t;
+	typedef robin_hood::unordered_map<std::string, void *> animation_data_map_t;
 	animation_data_map_t mAnimationData;
 
 	F32					mPreferredPelvisHeight;
diff --git a/indra/llcharacter/llkeyframemotion.cpp b/indra/llcharacter/llkeyframemotion.cpp
index c50ff37e1bad369c5752d16c4e454a00c491343f..f06e42fd1413c464ffb4f1c95f0a2670d2935d0e 100644
--- a/indra/llcharacter/llkeyframemotion.cpp
+++ b/indra/llcharacter/llkeyframemotion.cpp
@@ -2452,7 +2452,7 @@ LLKeyframeDataCache::~LLKeyframeDataCache()
 //-----------------------------------------------------------------------------
 void LLKeyframeDataCache::clear()
 {
-	for_each(sKeyframeDataMap.begin(), sKeyframeDataMap.end(), DeletePairedPointer());
+	std::for_each(sKeyframeDataMap.begin(), sKeyframeDataMap.end(), DeletePairedPointer());
 	sKeyframeDataMap.clear();
 }
 
diff --git a/indra/llcharacter/llkeyframemotion.h b/indra/llcharacter/llkeyframemotion.h
index 6f50e363daf3e1ec438285b04e703c53c1892b22..675d0c4408954da8453f53e9bf0d697caac6f577 100644
--- a/indra/llcharacter/llkeyframemotion.h
+++ b/indra/llcharacter/llkeyframemotion.h
@@ -43,6 +43,8 @@
 #include "v3math.h"
 #include "llbvhconsts.h"
 
+#include <robin_hood.h>
+
 class LLKeyframeDataCache;
 class LLVFS;
 class LLDataPacker;
@@ -442,7 +444,7 @@ class LLKeyframeDataCache
 	LLKeyframeDataCache(){};
 	~LLKeyframeDataCache();
 
-	typedef boost::unordered_map<LLUUID, class LLKeyframeMotion::JointMotionList*> keyframe_data_map_t; 
+	typedef robin_hood::unordered_map<LLUUID, class LLKeyframeMotion::JointMotionList*> keyframe_data_map_t; 
 	static keyframe_data_map_t sKeyframeDataMap;
 
 	static void addKeyframeData(const LLUUID& id, LLKeyframeMotion::JointMotionList*);
diff --git a/indra/llcharacter/llmotioncontroller.cpp b/indra/llcharacter/llmotioncontroller.cpp
index 41f372d09f9aeab2838c3600c8690b56a58074e5..5097d2d6033fc2ce9cb35b34e4296490b70c2331 100644
--- a/indra/llcharacter/llmotioncontroller.cpp
+++ b/indra/llcharacter/llmotioncontroller.cpp
@@ -172,7 +172,7 @@ void LLMotionController::deleteAllMotions()
 	mLoadedMotions.clear();
 	mActiveMotions.clear();
 
-	for_each(mAllMotions.begin(), mAllMotions.end(), DeletePairedPointer());
+	std::for_each(mAllMotions.begin(), mAllMotions.end(), DeletePairedPointer());
 	mAllMotions.clear();
 
 	// stinson 05/12/20014 : Ownership of the LLMotion pointers is transferred from
diff --git a/indra/llcharacter/llmotioncontroller.h b/indra/llcharacter/llmotioncontroller.h
index 7b5c29699e8e48ccd5a6c964c2595ab6a91cd2bf..51db86f73ffc49ecaa03734a41f2ad4a1004b4cc 100644
--- a/indra/llcharacter/llmotioncontroller.h
+++ b/indra/llcharacter/llmotioncontroller.h
@@ -40,7 +40,7 @@
 #include "llstatemachine.h"
 #include "llstring.h"
 
-#include <boost/unordered_map.hpp>
+#include <robin_hood.h>
 
 //-----------------------------------------------------------------------------
 // Class predeclaration
@@ -75,7 +75,7 @@ class LLMotionRegistry
 
 
 protected:
-	typedef boost::unordered_map<LLUUID, LLMotionConstructor> motion_map_t;
+	typedef robin_hood::unordered_map<LLUUID, LLMotionConstructor> motion_map_t;
 	motion_map_t mMotionTable;
 };
 
@@ -210,7 +210,7 @@ class LLMotionController
 //	Once an animations is loaded, it will be initialized and put on the mLoadedMotions list.
 //	Any animation that is currently playing also sits in the mActiveMotions list.
 
-	typedef boost::unordered_map<LLUUID, LLMotion*> motion_map_t;
+	typedef robin_hood::unordered_map<LLUUID, LLMotion*> motion_map_t;
 	motion_map_t	mAllMotions;
 
 	motion_set_t		mLoadingMotions;