diff --git a/library/threading.c b/library/threading.c
index 35388ca..e904b19 100644
--- a/library/threading.c
+++ b/library/threading.c
@@ -73,6 +73,12 @@
 void (*mbedtls_mutex_free)( mbedtls_threading_mutex_t * ) = threading_mutex_free_pthread;
 int (*mbedtls_mutex_lock)( mbedtls_threading_mutex_t * ) = threading_mutex_lock_pthread;
 int (*mbedtls_mutex_unlock)( mbedtls_threading_mutex_t * ) = threading_mutex_unlock_pthread;
+
+/*
+ * With phtreads we can statically initialize mutexes
+ */
+#define MUTEX_INIT  = { PTHREAD_MUTEX_INITIALIZER, 1 }
+
 #endif /* MBEDTLS_THREADING_PTHREAD */
 
 #if defined(MBEDTLS_THREADING_ALT)
@@ -92,8 +98,11 @@
 int (*mbedtls_mutex_lock)( mbedtls_threading_mutex_t * ) = threading_mutex_fail;
 int (*mbedtls_mutex_unlock)( mbedtls_threading_mutex_t * ) = threading_mutex_fail;
 
-int mbedtls_threading_set_alt( int (*mutex_init)( mbedtls_threading_mutex_t * ),
-                       int (*mutex_free)( mbedtls_threading_mutex_t * ),
+/*
+ * Set functions pointers and initialize global mutexes
+ */
+void mbedtls_threading_set_alt( void (*mutex_init)( mbedtls_threading_mutex_t * ),
+                       void (*mutex_free)( mbedtls_threading_mutex_t * ),
                        int (*mutex_lock)( mbedtls_threading_mutex_t * ),
                        int (*mutex_unlock)( mbedtls_threading_mutex_t * ) )
 {
@@ -102,8 +111,24 @@
     mbedtls_mutex_lock = mutex_lock;
     mbedtls_mutex_unlock = mutex_unlock;
 
-    return( 0 );
+    mbedtls_mutex_init( &mbedtls_threading_readdir_mutex );
+}
+
+/*
+ * Free global mutexes
+ */
+void mbedtls_threading_free_alt( void )
+{
+    mbedtls_mutex_free( &mbedtls_threading_readdir_mutex );
 }
 #endif /* MBEDTLS_THREADING_ALT */
 
+/*
+ * Define global mutexes
+ */
+#ifndef MUTEX_INIT
+#define MUTEX_INIT
+#endif
+mbedtls_threading_mutex_t mbedtls_threading_readdir_mutex MUTEX_INIT;
+
 #endif /* MBEDTLS_THREADING_C */
diff --git a/library/x509_crt.c b/library/x509_crt.c
index d1749b9..e46c934 100644
--- a/library/x509_crt.c
+++ b/library/x509_crt.c
@@ -963,13 +963,6 @@
     return( ret );
 }
 
-#if defined(MBEDTLS_THREADING_PTHREAD)
-static mbedtls_threading_mutex_t readdir_mutex = {
-    PTHREAD_MUTEX_INITIALIZER,
-    1
-};
-#endif
-
 int mbedtls_x509_crt_parse_path( mbedtls_x509_crt *chain, const char *path )
 {
     int ret = 0;
@@ -1040,7 +1033,7 @@
         return( MBEDTLS_ERR_X509_FILE_IO_ERROR );
 
 #if defined(MBEDTLS_THREADING_PTHREAD)
-    if( ( ret = mbedtls_mutex_lock( &readdir_mutex ) ) != 0 )
+    if( ( ret = mbedtls_mutex_lock( &mbedtls_threading_readdir_mutex ) ) != 0 )
         return( ret );
 #endif
 
@@ -1070,7 +1063,7 @@
 
 cleanup:
 #if defined(MBEDTLS_THREADING_PTHREAD)
-    if( mbedtls_mutex_unlock( &readdir_mutex ) != 0 )
+    if( mbedtls_mutex_unlock( &mbedtls_threading_readdir_mutex ) != 0 )
         ret = MBEDTLS_ERR_THREADING_MUTEX_ERROR;
 #endif
 
