-// __thread keyword is supported if configure detected it or when using mingw32
-// >= 4.3 which is known to have it too
-#elif defined(HAVE___THREAD_KEYWORD) || \
- (defined(__MINGW32__) && wxCHECK_GCC_VERSION(4, 3))
+// otherwise try to find the compiler-specific way to handle TLS unless
+// explicitly disabled by setting wxUSE_COMPILER_TLS to 0 (it is 1 by default).
+#elif wxUSE_COMPILER_TLS
+// __thread keyword is not supported correctly by MinGW, at least in some
+// configurations, see http://sourceforge.net/support/tracker.php?aid=2837047
+// and when in doubt we prefer to not use it at all.
+#if defined(HAVE___THREAD_KEYWORD) && !defined(__MINGW32__)