diff --git a/library/x509_crt.c b/library/x509_crt.c
index 6382c53..5330bf1 100644
--- a/library/x509_crt.c
+++ b/library/x509_crt.c
@@ -991,26 +991,20 @@
 
     FindClose( hFind );
 #else /* _WIN32 */
-#if defined(POLARSSL_HAVE_READDIR_R)
-    int t_ret, i;
+    int t_ret;
     struct stat sb;
-    struct dirent entry, *result = NULL;
+    struct dirent *entry;
     char entry_name[255];
     DIR *dir = opendir( path );
 
     if( dir == NULL)
         return( POLARSSL_ERR_X509_FILE_IO_ERROR );
 
-    while( ( t_ret = readdir_r( dir, &entry, &result ) ) == 0 )
+    while( ( entry = readdir( dir ) ) != NULL )
     {
-        if( result == NULL )
-            break;
+        snprintf( entry_name, sizeof entry_name, "%s/%s", path, entry->d_name );
 
-        snprintf( entry_name, sizeof(entry_name), "%s/%s", path, entry.d_name );
-
-        i = stat( entry_name, &sb );
-
-        if( i == -1 )
+        if( stat( entry_name, &sb ) == -1 )
         {
             closedir( dir );
             return( POLARSSL_ERR_X509_FILE_IO_ERROR );
@@ -1028,11 +1022,6 @@
             ret += t_ret;
     }
     closedir( dir );
-#else /* POLARSSL_HAVE_READDIR_R */
-    ((void) chain);
-    ((void) path);
-    ret = POLARSSL_ERR_X509_FEATURE_UNAVAILABLE;
-#endif /* POLARSSL_HAVE_READDIR_R */
 #endif /* _WIN32 */
 
     return( ret );
