diff --git a/indra/newview/llsechandler_basic.cpp b/indra/newview/llsechandler_basic.cpp
index 7a813306a7..82ca0a1571 100755
--- a/indra/newview/llsechandler_basic.cpp
+++ b/indra/newview/llsechandler_basic.cpp
@@ -602,10 +602,16 @@ void LLBasicCertificateStore::load_from_file(const std::string& filename)
return;
}
- BIO* file_bio = BIO_new(BIO_s_file());
+ // Do not use BIO_new(BIO_s_file())/BIO_read_filename. This will fail if filename is an UTF8 encoded unicode path. Instead
+ // use BIO_new_file. BIO_new_file handles UTF8 encoded filenames gracefully.
+
+ // BIO* file_bio = BIO_new(BIO_s_file());
+ BIO *file_bio( BIO_new_file( filename.c_str(), "rt" ) );
+ //
+
if(file_bio)
{
- if (BIO_read_filename(file_bio, filename.c_str()) > 0)
+ // if (BIO_read_filename(file_bio, filename.c_str()) > 0) //
{
X509 *cert_x509 = NULL;
while((PEM_read_bio_X509(file_bio, &cert_x509, 0, NULL)) &&