diff --git a/indra/llwindow/llwindowsdl.cpp b/indra/llwindow/llwindowsdl.cpp
index 3779df6638c1f3cb46d7c0a743294cbc5da82e48..d97f3e9f2a0b1d011e903560728922745fe1932a 100644
--- a/indra/llwindow/llwindowsdl.cpp
+++ b/indra/llwindow/llwindowsdl.cpp
@@ -239,9 +239,12 @@ LLWindowSDL::LLWindowSDL(LLWindowCallbacks* callbacks,
 	  mGamma(1.0f)
 {
 	SDL_SetMainReady();
-
 	SDL_LogSetOutputFunction(&sdlLogOutputFunc, nullptr);
 
+#if LL_X11
+	XInitThreads();
+#endif
+
 	if (SDL_InitSubSystem(SDL_INIT_EVENTS|SDL_INIT_VIDEO|SDL_INIT_GAMECONTROLLER|SDL_INIT_JOYSTICK) != 0)
 	{
 		LL_WARNS() << "Failed to initialize SDL due to error: " << SDL_GetError() << LL_ENDL;