diff --git a/lib/getenv.c b/lib/getenv.c
index 0c23e76aaec8e58cefb62a66c1a18cd0f06bb1c6..941ee853593c5fbe94d89c912aabc673c88e2c88 100644
--- a/lib/getenv.c
+++ b/lib/getenv.c
@@ -41,12 +41,13 @@ char *GetEnv(char *variable)
   char env[MAX_PATH]; /* MAX_PATH is from windef.h */
   char *temp = getenv(variable);
   env[0] = '\0';
-  ExpandEnvironmentStrings(temp, env, sizeof(env));
+  if (temp != NULL)
+    ExpandEnvironmentStrings(temp, env, sizeof(env));
 #else
   /* no length control */
   char *env = getenv(variable);
 #endif
-  return env?strdup(env):NULL;
+  return (env && env[0])?strdup(env):NULL;
 }
 
 char *curl_getenv(char *v)