diff --git a/indra/llcommon/llapr.cpp b/indra/llcommon/llapr.cpp
index 4d7205b209fa366acf43df6762afc0c18a0d539e..db06b6952189c0063a1601ae50d38a26878c18bd 100644
--- a/indra/llcommon/llapr.cpp
+++ b/indra/llcommon/llapr.cpp
@@ -146,7 +146,7 @@ LLVolatileAPRPool::LLVolatileAPRPool(std::string name, BOOL is_local, apr_pool_t
 				  mNumTotalRef(0)
 {
 	//create mutex for thread safe.
-	mMutexp = std::make_unique<std::shared_mutex>();
+	mMutexp = std::make_unique<std::mutex>();
 }
 
 LLVolatileAPRPool::~LLVolatileAPRPool()
diff --git a/indra/llcommon/llapr.h b/indra/llcommon/llapr.h
index c9723180102e389fa806687ef1b6829a92f6743d..64425fae23047a2bd53a2db70027123d62045191 100644
--- a/indra/llcommon/llapr.h
+++ b/indra/llcommon/llapr.h
@@ -119,7 +119,7 @@ class LL_COMMON_API LLVolatileAPRPool final : public LLAPRPool
 	S32 mNumActiveRef ; //number of active pointers pointing to the apr_pool.
 	S32 mNumTotalRef ;  //number of total pointers pointing to the apr_pool since last creating.  
 
-	std::unique_ptr<std::shared_mutex> mMutexp;
+	std::unique_ptr<std::mutex> mMutexp;
 } ;
 
 // File IO convenience functions.
diff --git a/indra/llcommon/llinstancetracker.h b/indra/llcommon/llinstancetracker.h
index 4a33e644a64089399fe2f181b82bcc11c5d73a2e..5d1fb34ed55c9c52cfbb76a80a9fbbbb00e34ea1 100644
--- a/indra/llcommon/llinstancetracker.h
+++ b/indra/llcommon/llinstancetracker.h
@@ -52,7 +52,7 @@ namespace LLInstanceTrackerPrivate
     struct StaticBase
     {
         // We need to be able to lock static data while manipulating it.
-        std::shared_mutex mMutex;
+        std::mutex mMutex;
     };
 
     void logerrs(const char* cls, const std::string&, const std::string&, const std::string&);
diff --git a/indra/llcommon/llmutex.cpp b/indra/llcommon/llmutex.cpp
index d3b4215de2c663e766c3a898384faefbdb45003a..673203bb219ba32cc935c27e5b4e260ae9baf8f8 100644
--- a/indra/llcommon/llmutex.cpp
+++ b/indra/llcommon/llmutex.cpp
@@ -94,7 +94,7 @@ void LLCondition::broadcast()
 //
 // LLScopedLock
 //
-LLScopedLock::LLScopedLock(std::shared_mutex* mutex) : mMutex(mutex)
+LLScopedLock::LLScopedLock(std::mutex* mutex) : mMutex(mutex)
 {
     LL_PROFILE_ZONE_SCOPED_CATEGORY_THREAD
 	if(mutex)
diff --git a/indra/llcommon/llmutex.h b/indra/llcommon/llmutex.h
index 9e3ef0558f472d977a60bb814c53d20347a8d4c9..8c5316549c0487c8abcdeba781e65ee9539b7cb1 100644
--- a/indra/llcommon/llmutex.h
+++ b/indra/llcommon/llmutex.h
@@ -198,7 +198,7 @@ class LL_COMMON_API LLScopedLock : private boost::noncopyable
     * @param mutex An allocated mutex. If you pass in NULL,
     * this wrapper will not lock.
     */
-    LLScopedLock(std::shared_mutex* mutex);
+    LLScopedLock(std::mutex* mutex);
 
     /**
     * @brief Destructor which unlocks the mutex if still locked.
@@ -217,7 +217,7 @@ class LL_COMMON_API LLScopedLock : private boost::noncopyable
 
 protected:
     bool mLocked;
-    std::shared_mutex* mMutex;
+    std::mutex* mMutex;
 };
 
 #endif // LL_LLMUTEX_H