diff --git a/indra/llmessage/llcoproceduremanager.cpp b/indra/llmessage/llcoproceduremanager.cpp
index 74cdff2b0087d6480d6ead893d3328adae176286..e1ca388dd7c0402a6a86aa808b4550e732e0d1de 100644
--- a/indra/llmessage/llcoproceduremanager.cpp
+++ b/indra/llmessage/llcoproceduremanager.cpp
@@ -137,6 +137,12 @@ LLCoprocedureManager::~LLCoprocedureManager()
 
 }
 
+void LLCoprocedureManager::initSingleton()
+{
+    // workaround until we get mutex into initializePool
+    initializePool("VAssetStorage");
+}
+
 LLCoprocedureManager::poolPtr_t LLCoprocedureManager::initializePool(const std::string &poolName)
 {
     // Attempt to look up a pool size in the configuration.  If found use that
diff --git a/indra/llmessage/llcoproceduremanager.h b/indra/llmessage/llcoproceduremanager.h
index 7d0e83180ce1593dc3451b96be834f319e300c2e..f323b168789b8438dbf2518ad697a18a26651cc3 100644
--- a/indra/llmessage/llcoproceduremanager.h
+++ b/indra/llmessage/llcoproceduremanager.h
@@ -39,6 +39,7 @@ class LLCoprocedureManager : public LLSingleton < LLCoprocedureManager >
 {
     LLSINGLETON(LLCoprocedureManager);
     virtual ~LLCoprocedureManager();
+    /*virtual*/ void initSingleton();
 
 public:
     typedef boost::function<U32(const std::string &)> SettingQuery_t;