diff --git a/indra/llcommon/llthread.cpp b/indra/llcommon/llthread.cpp
index 1f4aa9b3a63ab122976ba2ee359ee944bf4719b4..f066e9a4cdd43006a531453e6bae33a19b8fa586 100644
--- a/indra/llcommon/llthread.cpp
+++ b/indra/llcommon/llthread.cpp
@@ -249,9 +249,10 @@ void LLThread::shutdown()
             // This thread just wouldn't stop, even though we gave it time
             //LL_WARNS() << "LLThread::~LLThread() exiting thread before clean exit!" << LL_ENDL;
             // Put a stake in its heart.
-            delete mRecorder;
-
             apr_thread_exit(mAPRThreadp, -1);
+            delete mRecorder;
+            mRecorder = NULL;
+            mStatus = STOPPED;
             return;
         }
         mAPRThreadp = NULL;