diff --git a/src/Common/Thread.hpp b/src/Common/Thread.hpp
index 8f6443e..f59a0d4 100644
--- a/src/Common/Thread.hpp
+++ b/src/Common/Thread.hpp
@@ -135,7 +135,7 @@
 			return TlsAlloc();
 		#else
 			LocalStorageKey key;
-			pthread_key_create(&key, 0);
+			pthread_key_create(&key, NULL);
 			return key;
 		#endif
 	}
@@ -145,7 +145,7 @@
 		#if defined(_WIN32)
 			TlsFree(key);
 		#else
-			pthread_key_delete(key);
+			pthread_key_delete(key);   // Using an invalid key is an error but not undefined behavior.
 		#endif
 	}
 
@@ -154,7 +154,10 @@
 		#if defined(_WIN32)
 			TlsSetValue(key, value);
 		#else
-			pthread_setspecific(key, value);
+			if(key != TLS_OUT_OF_INDEXES)   // Avoid undefined behavior.
+			{
+				pthread_setspecific(key, value);
+			}
 		#endif
 	}
 
@@ -163,6 +166,11 @@
 		#if defined(_WIN32)
 			return TlsGetValue(key);
 		#else
+			if(key == TLS_OUT_OF_INDEXES)   // Avoid undefined behavior.
+			{
+				return nullptr;
+			}
+
 			return pthread_getspecific(key);
 		#endif
 	}
diff --git a/src/OpenGL/libEGL/main.cpp b/src/OpenGL/libEGL/main.cpp
index 1df31c5..7f024d0 100644
--- a/src/OpenGL/libEGL/main.cpp
+++ b/src/OpenGL/libEGL/main.cpp
@@ -39,22 +39,31 @@
 
 namespace egl
 {
-void attachThread()
+Current *attachThread()
 {
 	TRACE("()");
 
-	Current *current = new Current;
-
-	if(current)
+	if(currentTLS == TLS_OUT_OF_INDEXES)
 	{
-		sw::Thread::setLocalStorage(currentTLS, current);
-
-		current->error = EGL_SUCCESS;
-		current->API = EGL_OPENGL_ES_API;
-		current->context = nullptr;
-		current->drawSurface = nullptr;
-		current->readSurface = nullptr;
+		currentTLS = sw::Thread::allocateLocalStorageKey();
 	}
+
+	Current *current = (Current*)sw::Thread::getLocalStorage(currentTLS);
+
+	if(!current)
+	{
+		current = new Current;
+
+		sw::Thread::setLocalStorage(currentTLS, current);
+	}
+
+	current->error = EGL_SUCCESS;
+	current->API = EGL_OPENGL_ES_API;
+	current->context = nullptr;
+	current->drawSurface = nullptr;
+	current->readSurface = nullptr;
+
+	return current;
 }
 
 void detachThread()
@@ -82,13 +91,6 @@
 		}
 	#endif
 
-	currentTLS = sw::Thread::allocateLocalStorageKey();
-
-	if(currentTLS == TLS_OUT_OF_INDEXES)
-	{
-		return;
-	}
-
 	attachThread();
 }
 
@@ -176,10 +178,10 @@
 
 	if(!current)
 	{
-		attachThread();
+		current = attachThread();
 	}
 
-	return (Current*)sw::Thread::getLocalStorage(currentTLS);
+	return current;
 }
 
 void setCurrentError(EGLint error)
