diff --git a/indra/newview/llcoproceduremanager.cpp b/indra/newview/llcoproceduremanager.cpp
index 3f5fe7a5823ed9af306c6c067fecaccdf69d6896..3ecb323cab9307585cb15f89c26964b3bb28b32f 100644
--- a/indra/newview/llcoproceduremanager.cpp
+++ b/indra/newview/llcoproceduremanager.cpp
@@ -1,5 +1,5 @@
 /**
-* @file llupdloadmanager.cpp
+* @file llcoproceduremanager.cpp
 * @author Rider Linden
 * @brief Singleton class for managing asset uploads to the sim.
 *
@@ -44,18 +44,6 @@ LLCoprocedureManager::LLCoprocedureManager():
     mCoroMapping(),
     mHTTPPolicy(LLCore::HttpRequest::DEFAULT_POLICY_ID)
 {
-    initializeManager();
-}
-
-LLCoprocedureManager::~LLCoprocedureManager() 
-{
-    shutdown();
-}
-
-//=========================================================================
-void LLCoprocedureManager::initializeManager()
-{
-    mShutdown = false;
 
     // *TODO: Retrieve the actual number of concurrent coroutines fro gSavedSettings and
     // clamp to a "reasonable" number.
@@ -74,6 +62,13 @@ void LLCoprocedureManager::initializeManager()
     mWakeupTrigger.post(LLSD());
 }
 
+LLCoprocedureManager::~LLCoprocedureManager() 
+{
+    shutdown();
+}
+
+//=========================================================================
+
 void LLCoprocedureManager::shutdown(bool hardShutdown)
 {
     CoroAdapterMap_t::iterator it;
@@ -123,7 +118,7 @@ void LLCoprocedureManager::cancelCoprocedure(const LLUUID &id)
         return;
     }
 
-    for (AssetQueue_t::iterator it = mPendingCoprocs.begin(); it != mPendingCoprocs.end(); ++it)
+    for (CoprocQueue_t::iterator it = mPendingCoprocs.begin(); it != mPendingCoprocs.end(); ++it)
     {
         if ((*it)->mId == id)
         {
@@ -164,6 +159,10 @@ void LLCoprocedureManager::coprocedureInvokerCoro(LLCoros::self& self, LLCoreHtt
                 LL_WARNS() << "Coprocedure(" << coproc->mName << ") id=" << coproc->mId.asString() <<
                     " threw an exception! Message=\"" << e.what() << "\"" << LL_ENDL;
             }
+            catch (...)
+            {
+                LL_WARNS() << "A non std::exception was thrown from " << coproc->mName << " with id=" << coproc->mId << "." << LL_ENDL;
+            }
 
             LL_INFOS() << "Finished coprocedure(" << coproc->mName << ")" << LL_ENDL;
 
diff --git a/indra/newview/llcoproceduremanager.h b/indra/newview/llcoproceduremanager.h
index 8902b217c27821ddb6053a53717e35b1f8058956..e84eba2db979ebd3ace1057a142cbe2567f54fb0 100644
--- a/indra/newview/llcoproceduremanager.h
+++ b/indra/newview/llcoproceduremanager.h
@@ -1,5 +1,5 @@
 /**
-* @file llupdloadmanager.h
+* @file llcoproceduremanager.h
 * @author Rider Linden
 * @brief Singleton class for managing asset uploads to the sim.
 *
@@ -97,10 +97,12 @@ class LLCoprocedureManager : public LLSingleton < LLCoprocedureManager >
         CoProcedure_t mProc;
     };
     
-    typedef std::deque<QueuedCoproc::ptr_t>  AssetQueue_t;
+    // we use a deque here rather than std::queue since we want to be able to 
+    // iterate through the queue and potentially erase an entry from the middle.
+    typedef std::deque<QueuedCoproc::ptr_t>  CoprocQueue_t;  
     typedef std::map<LLUUID, LLCoreHttpUtil::HttpCoroutineAdapter::ptr_t> ActiveCoproc_t;
 
-    AssetQueue_t    mPendingCoprocs;
+    CoprocQueue_t   mPendingCoprocs;
     ActiveCoproc_t  mActiveCoprocs;
     bool            mShutdown;
     LLEventStream   mWakeupTrigger;
@@ -111,7 +113,6 @@ class LLCoprocedureManager : public LLSingleton < LLCoprocedureManager >
 
     CoroAdapterMap_t mCoroMapping;
 
-    void initializeManager();
     void coprocedureInvokerCoro(LLCoros::self& self, LLCoreHttpUtil::HttpCoroutineAdapter::ptr_t httpAdapter);
 };