diff --git a/crypto/x509/by_dir.c b/crypto/x509/by_dir.c
index 16d2dfb..5829de4 100644
--- a/crypto/x509/by_dir.c
+++ b/crypto/x509/by_dir.c
@@ -66,12 +66,6 @@
 #include "../internal.h"
 #include "internal.h"
 
-#if !defined(OPENSSL_NO_POSIX_IO)
-#include <sys/stat.h>
-#include <sys/types.h>
-#endif
-
-
 typedef struct lookup_dir_hashes_st {
   uint32_t hash;
   int suffix;
@@ -317,31 +311,22 @@
       for (;;) {
         snprintf(b->data, b->max, "%s/%08" PRIx32 ".%s%d", ent->dir, h, postfix,
                  k);
-#if !defined(OPENSSL_NO_POSIX_IO)
-#if defined(_WIN32) && !defined(stat)
-#define stat _stat
-#endif
-        {
-          // TODO(crbug.com/boringssl/708): This call should be redundant with
-          // |X509_load_*_file| failing below, but it turns out to be
-          // load-bearing. Clean this up.
-          struct stat st;
-          if (stat(b->data, &st) < 0) {
-            break;
-          }
-        }
-#endif
-        // found one.
         if (type == X509_LU_X509) {
           if ((X509_load_cert_file(xl, b->data, ent->dir_type)) == 0) {
+            // Don't expose the lower level error, All of these boil
+            // down to "we could not find a CA".
+            ERR_clear_error();
             break;
           }
         } else if (type == X509_LU_CRL) {
           if ((X509_load_crl_file(xl, b->data, ent->dir_type)) == 0) {
+            // Don't expose the lower level error, All of these boil
+            // down to "we could not find a CRL".
+            ERR_clear_error();
             break;
           }
         }
-        // else case will caught higher up
+        // The lack of a CA or CRL will be caught higher up
         k++;
       }
 
