diff --git a/indra/newview/llsechandler_basic.cpp b/indra/newview/llsechandler_basic.cpp
index 1453506b0dd270f943fba8d0b650a8bc68573032..9827dc605a6499e0613dbf96eb251af761d41630 100644
--- a/indra/newview/llsechandler_basic.cpp
+++ b/indra/newview/llsechandler_basic.cpp
@@ -1038,46 +1038,42 @@ LLSecAPIBasicHandler::LLSecAPIBasicHandler()
 
 void LLSecAPIBasicHandler::init()
 {
+	mProtectedDataMap = LLSD::emptyMap();
 	if (mProtectedDataFilename.length() == 0)
 	{
 		mProtectedDataFilename = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS,
 															"bin_conf.dat");
-	}
-	if (mLegacyPasswordPath.length() == 0)
-	{
 		mLegacyPasswordPath = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, "password.dat");
-	}
-	mProtectedDataMap = LLSD::emptyMap();
 	
-	mProtectedDataFilename = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS,
+		mProtectedDataFilename = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS,
 															"bin_conf.dat");	
+		std::string store_file = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS,
+														"CA.pem");
+		// copy the CA file to a user writable location so we can manipulate it.
+		// for this provider, by using a user writable file, there is a risk that
+		// an attacking program can modify the file, but OS dependent providers
+		// will reduce that risk.
+		// by using a user file, modifications will be limited to one user if
+		// we read-only the main file
+		if (!LLFile::isfile(store_file))
+		{
 
-	std::string store_file = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS,
-															"CA.pem");
-	// copy the CA file to a user writable location so we can manipulate it.
-	// for this provider, by using a user writable file, there is a risk that
-	// an attacking program can modify the file, but OS dependent providers
-	// will reduce that risk.
-	// by using a user file, modifications will be limited to one user if
-	// we read-only the main file
-	if (!LLFile::isfile(store_file))
-	{
-
-		std::string ca_file_path = gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "CA.pem");
-		llifstream ca_file(ca_file_path.c_str(), llifstream::binary | llifstream::in);
-		llofstream copied_store_file(store_file.c_str(), llofstream::binary | llofstream::out);
+			std::string ca_file_path = gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "CA.pem");
+			llifstream ca_file(ca_file_path.c_str(), llifstream::binary | llifstream::in);
+			llofstream copied_store_file(store_file.c_str(), llofstream::binary | llofstream::out);
 
-		while(!ca_file.fail())
-		{
-			char buffer[BUFFER_READ_SIZE];
-			ca_file.read(buffer, sizeof(buffer));
-			copied_store_file.write(buffer, ca_file.gcount());
+			while(!ca_file.fail())
+			{
+				char buffer[BUFFER_READ_SIZE];
+				ca_file.read(buffer, sizeof(buffer));
+				copied_store_file.write(buffer, ca_file.gcount());
+			}
+			ca_file.close();
+			copied_store_file.close();
 		}
-		ca_file.close();
-		copied_store_file.close();
+		LL_INFOS("SECAPI") << "Loading certificate store from " << store_file << LL_ENDL;
+		mStore = new LLBasicCertificateStore(store_file);
 	}
-	LL_INFOS("SECAPI") << "Loading certificate store from " << store_file << LL_ENDL;
-	mStore = new LLBasicCertificateStore(store_file);
 	_readProtectedData(); // initialize mProtectedDataMap
 						  // may throw LLProtectedDataException if saved datamap is not decryptable
 }
diff --git a/indra/newview/tests/llsechandler_basic_test.cpp b/indra/newview/tests/llsechandler_basic_test.cpp
index 3e4e8c5b3e63c35352e56f05e7c0faf317f72049..236d17c59191557f701b2a4a248e72cbc22ff184 100644
--- a/indra/newview/tests/llsechandler_basic_test.cpp
+++ b/indra/newview/tests/llsechandler_basic_test.cpp
@@ -340,7 +340,7 @@ namespace tut
 
 		LLPointer<LLSecAPIBasicHandler> handler = new LLSecAPIBasicHandler("sechandler_settings.tmp",
 																		   "test_password.dat");
-		handler.init();																		
+		handler->init();																		
 		// data retrieval for existing data
 		LLSD data = handler->getProtectedData("test_data_type", "test_data_id");
 
@@ -398,7 +398,7 @@ namespace tut
 		// cause a 'write' by using 'LLPointer' to delete then instantiate a handler
 		handler = NULL;
 		handler = new LLSecAPIBasicHandler("sechandler_settings.tmp", "test_password.dat");
-		handler.init();
+		handler->init();
 
 		data = handler->getProtectedData("test_data_type1", "test_data_id");
 		ensure_equals("verify datatype stored data3a", (std::string)data["store_data3"], "test_store_data3");
@@ -413,7 +413,7 @@ namespace tut
 		
 		// cause a 'write'
 		handler = new LLSecAPIBasicHandler("sechandler_settings.tmp", "test_password.dat");
-		handler.init();		
+		handler->init();		
 		data = handler->getProtectedData("test_data_type1", "test_data_id");
 		ensure("not found", data.isUndefined());
 		
@@ -422,7 +422,7 @@ namespace tut
 		
 		LLFile::remove("sechandler_settings.tmp");
 		handler = new LLSecAPIBasicHandler("sechandler_settings.tmp", "test_password.dat");
-		handler.init();		
+		handler->init();		
 		data = handler->getProtectedData("test_data_type1", "test_data_id");
 		ensure("not found", data.isUndefined());
 		handler = NULL;
@@ -435,7 +435,7 @@ namespace tut
 	void sechandler_basic_test_object::test<3>()
 	{
 		LLPointer<LLSecAPIBasicHandler> handler = new LLSecAPIBasicHandler("sechandler_settings.tmp", "test_password.dat");
-		handler.init();
+		handler->init();
 
 		LLSD my_id = LLSD::emptyMap();
 		LLSD my_authenticator = LLSD::emptyMap();