diff --git a/indra/llcorehttp/httpcommon.cpp b/indra/llcorehttp/httpcommon.cpp
index bbf23a6d70bfeb78b18da9ca537393c44470c0a9..61ba83594e0c24ee8b8f3b95697f7ed52b62fb0f 100644
--- a/indra/llcorehttp/httpcommon.cpp
+++ b/indra/llcorehttp/httpcommon.cpp
@@ -270,9 +270,6 @@ namespace LLHttp
 {
 namespace
 {
-typedef boost::shared_ptr<LLMutex> LLMutex_ptr;
-std::vector<LLMutex_ptr> sSSLMutex;
-
 CURL *getCurlTemplateHandle()
 {
     static CURL *curlpTemplateHandle = NULL;
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index 72eb344ded5acd04e27867442035924bb67f01a2..69606793db877849360f2937e800cc096df5bc00 100644
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -2006,7 +2006,9 @@ bool LLAppViewer::cleanup()
 	if (LLConversationLog::instanceExists())
 	{
 		LLConversationLog::instance().cache();
-	}
+    }
+
+    clearSecHandler();
 
 	if (mPurgeCacheOnExit)
 	{
diff --git a/indra/newview/llsecapi.cpp b/indra/newview/llsecapi.cpp
index b9259cb18dfd6833854d4edc8545613e8da24622..aba8ca5a4afd17decc44056659467f5012ee47ed 100644
--- a/indra/newview/llsecapi.cpp
+++ b/indra/newview/llsecapi.cpp
@@ -75,6 +75,12 @@ void initializeSecHandler()
 	}
 
 }
+
+void clearSecHandler()
+{
+    gSecAPIHandler = NULL;
+    gHandlerMap.clear();
+}
 // start using a given security api handler.  If the string is empty
 // the default is used
 LLPointer<LLSecAPIHandler> getSecHandler(const std::string& handler_type)
diff --git a/indra/newview/llsecapi.h b/indra/newview/llsecapi.h
index 1e6f2154bca02d1b3011c6b4e7e1e5e6ac450699..410737b27f70bce88c45304d25a2aed2a8bc72d7 100644
--- a/indra/newview/llsecapi.h
+++ b/indra/newview/llsecapi.h
@@ -533,6 +533,8 @@ class LLSecAPIHandler : public LLThreadSafeRefCount
 };
 
 void initializeSecHandler();
+
+void clearSecHandler();
 				
 // retrieve a security api depending on the api type
 LLPointer<LLSecAPIHandler> getSecHandler(const std::string& handler_type);