diff --git a/lib/getenv.c b/lib/getenv.c
index 4f955f893929c3104b1eafcc321e79122b6d4d1c..475c3d3ca5897a82e296d109d3b918d5e0186f46 100644
--- a/lib/getenv.c
+++ b/lib/getenv.c
@@ -5,7 +5,7 @@
  *                            | (__| |_| |  _ <| |___
  *                             \___|\___/|_| \_\_____|
  *
- * Copyright (C) 1998 - 2005, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2007, Daniel Stenberg, <daniel@haxx.se>, et al.
  *
  * This software is licensed as described in the file COPYING, which
  * you should have received as part of this distribution. The terms
@@ -48,18 +48,15 @@ char *GetEnv(const char *variable)
   env[0] = '\0';
   if (temp != NULL)
     ExpandEnvironmentStrings(temp, env, sizeof(env));
+  return (env[0] != '\0')?strdup(env):NULL;
 #else
-#ifdef  VMS
-  char *env = getenv(variable);
-  if (env && strcmp("HOME",variable) == 0) {
-        env = decc$translate_vms(env);
-  }
-#else
-  /* no length control */
   char *env = getenv(variable);
+#ifdef VMS
+  if (env && strcmp("HOME",variable) == 0)
+    env = decc$translate_vms(env);
 #endif
+  return env?strdup(env):NULL;
 #endif
-  return (env && env[0])?strdup(env):NULL;
 #endif
 }