diff --git a/indra/llprimitive/llmodelloader.cpp b/indra/llprimitive/llmodelloader.cpp
index 5171621007445bdcd06b136dcfa6fd3188991b50..3dd165215475e54eefc16e9b1db70d0560a5f5f0 100644
--- a/indra/llprimitive/llmodelloader.cpp
+++ b/indra/llprimitive/llmodelloader.cpp
@@ -25,6 +25,8 @@
  */
 
 #include "llmodelloader.h"
+
+#include "llapp.h"
 #include "llsdserialize.h"
 #include "lljoint.h"
 #include "llcallbacklist.h"
@@ -363,7 +365,10 @@ bool LLModelLoader::isAlive(LLModelLoader* loader)
 
 void LLModelLoader::loadModelCallback()
 {
-	mLoadCallback(mScene,mModelList,mLod, mOpaqueData);
+    if (!LLApp::isExiting())
+    {
+        mLoadCallback(mScene, mModelList, mLod, mOpaqueData);
+    }
 
 	while (!isStopped())
 	{ //wait until this thread is stopped before deleting self