diff --git a/indra/llwindow/llwindow.cpp b/indra/llwindow/llwindow.cpp
index 93b9d36939..f5f52163e0 100755
--- a/indra/llwindow/llwindow.cpp
+++ b/indra/llwindow/llwindow.cpp
@@ -50,8 +50,17 @@ LLSplashScreen *gSplashScreenp = NULL;
BOOL gDebugClicks = FALSE;
BOOL gDebugWindowProc = FALSE;
+// Allow file: links to open folders, chat history etc. on Linux systems
+#if LL_LINUX
+const S32 gURLProtocolWhitelistCount = 5;
+const std::string gURLProtocolWhitelist[] = { "secondlife:", "http:", "https:", "data:", "file:" };
+#else
+//
const S32 gURLProtocolWhitelistCount = 4;
const std::string gURLProtocolWhitelist[] = { "secondlife:", "http:", "https:", "data:" };
+// Allow file: links to open folders, chat history etc. on Linux systems
+#endif
+//
// CP: added a handler list - this is what's used to open the protocol and is based on registry entry
// only meaningful difference currently is that file: protocols are opened using http:
diff --git a/indra/llwindow/llwindowsdl.cpp b/indra/llwindow/llwindowsdl.cpp
index ef57371d8f..2caac90523 100755
--- a/indra/llwindow/llwindowsdl.cpp
+++ b/indra/llwindow/llwindowsdl.cpp
@@ -2634,7 +2634,7 @@ void LLWindowSDL::spawnWebBrowser(const std::string& escaped_url, bool async)
void LLWindowSDL::openFile(const std::string& file_name)
{
- spawnWebBrowser(file_name,TRUE);
+ spawnWebBrowser("file://"+file_name,TRUE);
}
void *LLWindowSDL::getPlatformWindow()