diff --git a/indra/llmessage/llcoproceduremanager.cpp b/indra/llmessage/llcoproceduremanager.cpp
index 3f55bda1e3de578edd1b6a6d61ce43973f6c2ed9..969cd162fbf8eb117ff18529b9cc1b1533c60c51 100644
--- a/indra/llmessage/llcoproceduremanager.cpp
+++ b/indra/llmessage/llcoproceduremanager.cpp
@@ -415,6 +415,14 @@ void LLCoprocedurePool::coprocedureInvokerCoro(
         {
             coproc->mProc(httpAdapter, coproc->mId);
         }
+        catch (const LLCoros::Stop &)
+        {
+            LL_INFOS("CoProcMgr") << "Viewer is shutting Down. Stopping coprocedure('" << coproc->mName
+                                   << "', id=" << coproc->mId.asString()
+                                   << ") in pool '" << mPoolName << "'" << LL_ENDL;
+            mActiveCoprocs.erase(itActive);
+            throw; // let toplevel handle this as LLContinueError
+        }
         catch (...)
         {
             LOG_UNHANDLED_EXCEPTION(STRINGIZE("Coprocedure('" << coproc->mName