diff --git a/indra/llcommon/llmortician.cpp b/indra/llcommon/llmortician.cpp
index 287f096eaec23f22efa86e4a983cc13a3135c35d..93c7d520f2b46325fe73fb68178f2cd01d7925f8 100644
--- a/indra/llcommon/llmortician.cpp
+++ b/indra/llcommon/llmortician.cpp
@@ -37,6 +37,42 @@ LLMortician::~LLMortician()
 	sGraveyard.remove(this);
 }
 
+U32 LLMortician::logClass(std::stringstream &str)
+{
+    U32 size = sGraveyard.size();
+    str << "Mortician graveyard count: " << size;
+    str << " Zealous: " << (sDestroyImmediate ? "True" : "False");
+    if (size == 0)
+    {
+        return size;
+    }
+    str << " Output:\n";
+    std::list<LLMortician*>::iterator iter = sGraveyard.begin();
+    std::list<LLMortician*>::iterator end = sGraveyard.end();
+    while (iter!=end)
+    {
+        LLMortician* dead = *iter;
+        iter++;
+        // Be as detailed and safe as possible to figure out issues
+        str << "Pointer: " << dead;
+        if (dead)
+        {
+            try
+            {
+                str << " Is dead: " << (dead->isDead() ? "True" : "False");
+                str << " Name: " << typeid(*dead).name();
+            }
+            catch (...)
+            {
+
+            }
+        }
+        str << "\n";
+    }
+    str << "--------------------------------------------";
+    return size;
+}
+
 void LLMortician::updateClass() 
 {
 	while (!sGraveyard.empty()) 
diff --git a/indra/llcommon/llmortician.h b/indra/llcommon/llmortician.h
index 9517e2db5e2eabb1424f7d87f637f20bb50b311d..41cb49fab15d73ab8be712ca287f4cbab4c17d36 100644
--- a/indra/llcommon/llmortician.h
+++ b/indra/llcommon/llmortician.h
@@ -34,6 +34,8 @@ class LL_COMMON_API LLMortician
 {
 public:
 	LLMortician() { mIsDead = FALSE; }
+	static U32 graveyardCount() { return sGraveyard.size(); };
+	static U32 logClass(std::stringstream &str);
 	static void updateClass();
 	virtual ~LLMortician();
 	void die();
diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp
index 0d99b35aeeed6b90b2ee5ac3399fdf31004577c0..9397356d407a72366fb67c2e17cabf8a8b77c484 100644
--- a/indra/newview/llstartup.cpp
+++ b/indra/newview/llstartup.cpp
@@ -348,6 +348,14 @@ bool idle_startup()
 	// to work.
 	gIdleCallbacks.callFunctions();
 	gViewerWindow->updateUI();
+
+	// There is a crash on updateClass, this is an attempt to get more information
+	if (LLMortician::graveyardCount())
+	{
+		std::stringstream log_stream;
+		LLMortician::logClass(log_stream);
+		LL_INFOS() << log_stream.str() << LL_ENDL;
+	}
 	LLMortician::updateClass();
 
 	const std::string delims (" ");