Index: ne_ntlm.c =================================================================== --- ne_ntlm.c (revision 1743) +++ ne_ntlm.c (working copy) @@ -656,6 +656,9 @@ if (context == NULL) { return -1; } else { + if (!responseToken && (context->state == NTLMSTATE_TYPE3)) + context->state = NTLMSTATE_NONE; + if (context->state <= NTLMSTATE_TYPE3) { ntlm ntlmstatus = ne_input_ntlm(context, responseToken); Index: ne_auth.c =================================================================== --- ne_auth.c (revision 1743) +++ ne_auth.c (working copy) @@ -725,7 +725,7 @@ NE_DEBUG(NE_DBG_HTTPAUTH, "auth: NTLM challenge.\n"); - if (!parms->opaque) { + if (!parms->opaque && (!sess->ntlm_context || (attempt > 1))) { char password[NE_ABUFSIZ]; if (get_credentials(sess, errmsg, attempt, parms, password)) {