diff --git a/src/openvpn/pkcs11.c b/src/openvpn/pkcs11.c
index 6ef26eb0..65693aed 100644
--- a/src/openvpn/pkcs11.c
+++ b/src/openvpn/pkcs11.c
@@ -406,7 +406,13 @@ pkcs11_addProvider(
      {
          PKCS11H_BOOL allow_protected_auth = protected_auth;
          PKCS11H_BOOL cert_is_private = cert_private;
-
+        unsigned loader_flags = 0;
+#if defined(_WIN32)
+        if (platform_absolute_pathname(provider))
+        {
+            loader_flags = LOAD_LIBRARY_SEARCH_DEFAULT_DIRS | 
LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR;
+        }
+#endif
          if (allow_protected_auth
              && (rv = pkcs11h_setProviderProperty(provider, 
