anchor.diff:              end
               else
               begin
  -              if hRequest <> nil
  -                then dwErrorCode := ERROR_SUCCESS
  -                else dwErrorCode := GetLastError();
  -
  +              // We don't have configured proxy options, so we'll prompt the
  +              // user
                 if FShowUI then
                 begin
  -                dwError := InternetErrorDlg(GetActiveWindow, hRequest, dwErrorCode,
  +                // Present the standard Windows proxy authentication dialog
  +                dwError := InternetErrorDlg(GetDesktopWindow, hRequest, ERROR_INTERNET_INCORRECT_PASSWORD,
                                              FLAGS_ERROR_UI_FILTER_FOR_ERRORS or
                                              FLAGS_ERROR_UI_FLAGS_CHANGE_OPTIONS or
                                              FLAGS_ERROR_UI_FLAGS_GENERATE_DATA,
                                              pvData);
  -                if dwError = ERROR_INTERNET_FORCE_RETRY then Continue;
  +                if dwError = ERROR_INTERNET_FORCE_RETRY then
  +                  // This indicates that the user clicked OK in the dialog
  +                  Continue
  +                else
  +                  raise EHTTPUploader.Create('Unable to authenticate with proxy', dwError);
                 end
                 else
                   raise EHTTPUploader.Create('Proxy login required but no UI specified', 0);
  
positive.code:                 end
                  else
                  begin
                    if hRequest <> nil
                      then dwErrorCode := ERROR_SUCCESS
                      else dwErrorCode := GetLastError();
  
                    dwError := InternetErrorDlg(GetActiveWindow, hRequest, dwErrorCode,
                                               FLAGS_ERROR_UI_FILTER_FOR_ERRORS or
                                               FLAGS_ERROR_UI_FLAGS_CHANGE_OPTIONS or
                                               FLAGS_ERROR_UI_FLAGS_GENERATE_DATA,
                                               pvData);
  
                    if dwError = ERROR_INTERNET_FORCE_RETRY then Continue;
                    //InternetErrorDlg(GetActiveWindow,  hRequest, dwError, dwFlags, ...);
  
negative.code:   buffersIn: INTERNET_BUFFERS;
    FFlags: DWORD;
    dwError: Cardinal;
    pvData: Pointer;
    RetryCount: Integer;
    dwLength: DWord;
  