diff --git a/indra/llmessage/llcoproceduremanager.cpp b/indra/llmessage/llcoproceduremanager.cpp
index 42c19e3b1c8c4991e92a704e41b7fd922918fa07..cb989dda1e71421c9fc4fc901ac817cb546d9a9d 100644
--- a/indra/llmessage/llcoproceduremanager.cpp
+++ b/indra/llmessage/llcoproceduremanager.cpp
@@ -272,6 +272,17 @@ void LLCoprocedureManager::close(const std::string &pool)
     }
 }
 
+// <FS:Ansariel> Explicitly create the VAAssetStorage pool
+void LLCoprocedureManager::createPool(const std::string& poolName)
+{
+    poolMap_t::iterator it = mPoolMap.find(poolName);
+    if (it == mPoolMap.end())
+    {
+        initializePool(poolName);
+    }
+}
+// </FS:Ansariel> Explicitly create the VAAssetStorage pool
+
 //=========================================================================
 LLCoprocedurePool::LLCoprocedurePool(const std::string &poolName, size_t size):
     mPoolName(poolName),
diff --git a/indra/llmessage/llcoproceduremanager.h b/indra/llmessage/llcoproceduremanager.h
index de858fb29dc729cd39756630bece1102fa7ad85c..2c620efe5182cc91fd9101e06bad8b7ea2f66c75 100644
--- a/indra/llmessage/llcoproceduremanager.h
+++ b/indra/llmessage/llcoproceduremanager.h
@@ -79,6 +79,8 @@ class LLCoprocedureManager final : public LLSingleton < LLCoprocedureManager >
 
     void close();
     void close(const std::string &pool);
+
+    void createPool(const std::string& poolName); // <FS:Ansariel> Explicitly create the VAAssetStorage pool
     
 private:
 
diff --git a/indra/newview/llviewerassetstorage.cpp b/indra/newview/llviewerassetstorage.cpp
index c6a2783a3eb5040271066e8a15c589ac8c357fb2..d40c9c9ed8b2b89d4e38d541da25ff5ad3902043 100644
--- a/indra/newview/llviewerassetstorage.cpp
+++ b/indra/newview/llviewerassetstorage.cpp
@@ -114,6 +114,8 @@ LLViewerAssetStorage::LLViewerAssetStorage(LLMessageSystem *msg, LLXferManager *
       mCountSucceeded(0),
       mTotalBytesFetched(0)
 {
+    // <FS:Ansariel> Explicitly create the VAAssetStorage pool
+    LLCoprocedureManager::instance().createPool(VIEWER_ASSET_STORAGE_CORO_POOL);
 }
 
 
@@ -127,6 +129,8 @@ LLViewerAssetStorage::LLViewerAssetStorage(LLMessageSystem *msg, LLXferManager *
       mCountSucceeded(0),
       mTotalBytesFetched(0)
 {
+    // <FS:Ansariel> Explicitly create the VAAssetStorage pool
+    LLCoprocedureManager::instance().createPool(VIEWER_ASSET_STORAGE_CORO_POOL);
 }
 
 LLViewerAssetStorage::~LLViewerAssetStorage()