diff --git a/library/x509_crt.c b/library/x509_crt.c
index 2ad051f..d9df4b2 100644
--- a/library/x509_crt.c
+++ b/library/x509_crt.c
@@ -1554,7 +1554,7 @@
     char filename[MAX_PATH];
     char *p;
     size_t len = strlen(path);
-    int lengthAsInt = 0;
+    int length_as_int = 0;
 
     WIN32_FIND_DATAW file_data;
     HANDLE hFind;
@@ -1570,7 +1570,7 @@
     p = filename + len;
     filename[len++] = '*';
 
-    if (FAILED (SizeTToInt(len, &lengthAsInt)))
+    if (FAILED (SizeTToInt(len, &length_as_int)))
         return(MBEDTLS_ERR_X509_FILE_IO_ERROR);
 
     /*
@@ -1581,7 +1581,7 @@
      * incoming string are less than MAX_PATH to avoid a buffer overrun with
      * MultiByteToWideChar().
      */
-    w_ret = MultiByteToWideChar(CP_ACP, 0, filename, (int) len, szDir,
+    w_ret = MultiByteToWideChar(CP_ACP, 0, filename, length_as_int, szDir,
                                 MAX_PATH - 3);
     if (w_ret == 0) {
         return MBEDTLS_ERR_X509_BAD_INPUT_DATA;
@@ -1600,14 +1600,15 @@
             continue;
         }
 
-        w_ret = WideCharToMultiByte(CP_ACP, 0, file_data.cFileName,
-                                    -1,
-                                    p, (int) len,
-                                    NULL, NULL);
-        if (FAILED(SizeTToInt(wcslen(file_data.cFileName), &lengthAsInt)))
+        if (FAILED(SizeTToInt(wcslen(file_data.cFileName), &length_as_int)))
             return(MBEDTLS_ERR_X509_FILE_IO_ERROR);
 
-        if (w_ret == 0) {
+        w_ret = WideCharToMultiByte(CP_ACP, 0, file_data.cFileName,
+                                    length_as_int,
+                                    p, (int) len - 1,
+                                    NULL, NULL);
+        if(w_ret == 0)
+        {
             ret = MBEDTLS_ERR_X509_FILE_IO_ERROR;
             goto cleanup;
         }
