diff --git a/src/main.c b/src/main.c
index b416e55c1d6084ea5d9fd64e6600a14ac0945635..6397e9035dd478c32180a648063f784296fe1cc0 100644
--- a/src/main.c
+++ b/src/main.c
@@ -2464,17 +2464,19 @@ operate(struct Configurable *config, int argc, char *argv[])
    * We support the environment variable thing for non-Windows platforms
    * too. Just for the sake of it.
    */
-  if (! config->cacert) {
+  if (!config->cacert &&
+      !config->capath &&
+      !config->insecure_ok) {
     env = curl_getenv("CURL_CA_BUNDLE");
     if(env) {
       GetStr(&config->cacert, env);
       free(env);
     }
-  }
 #if defined(WIN32) && !defined(__CYGWIN32__)
-  if (! config->cacert)
-    FindWin32CACert(config, "curl-ca-bundle.crt");
+    else
+      FindWin32CACert(config, "curl-ca-bundle.crt");
 #endif
+  }
 
   if (config->postfields) {
     if (config->use_httpget) {