  
  #ifndef CURL_DISABLE_HTTP
    /* If proxy was not specified, we check for default proxy environment
-@@ -4138,7 +4158,57 @@ static char *detect_proxy(struct connectdata *conn)
+@@ -4138,7 +4158,58 @@ static char *detect_proxy(struct connectdata *conn)
     * For compatibility, the all-uppercase versions of these variables are
     * checked if the lowercase versions don't exist.
     */
 -  char *no_proxy=NULL;
 +#ifdef WIN32
 +  WINHTTP_CURRENT_USER_IE_PROXY_CONFIG *ieProxyConfig;
-+  ieProxyConfig = (WINHTTP_CURRENT_USER_IE_PROXY_CONFIG*)malloc(sizeof(WINHTTP_CURRENT_USER_IE_PROXY_CONFIG));
++  ieProxyConfig = (WINHTTP_CURRENT_USER_IE_PROXY_CONFIG*)
++    malloc(sizeof(WINHTTP_CURRENT_USER_IE_PROXY_CONFIG));
 +  if(WinHttpGetIEProxyConfigForCurrentUser(ieProxyConfig)) {
 +    if(!ieProxyConfig->fAutoDetect) {
 +      char *ieProxy;

+{
+    int bufSize;
+    char* out = NULL;
+    if ( wStr != NULL )
+    {
+        bufSize = WideCharToMultiByte( CP_ACP,  0, wStr, -1, NULL, 0, NULL, NULL );
+        out = ( char* )malloc( bufSize * sizeof(char));
+        WideCharToMultiByte( CP_ACP, 0, wStr, -1, out, bufSize, NULL, NULL );
+    }

 #include "urldata.h"
 #include "netrc.h"
 
@@ -4111,6 +4115,22 @@ static bool check_noproxy(const char* name, const char* no_proxy)
   return FALSE;
 }
 
