diff -up cups-1.4.2/backend/ipp.c.str3458 cups-1.4.2/backend/ipp.c --- cups-1.4.2/backend/ipp.c.str3458 2009-12-22 13:04:25.021208333 +0000 +++ cups-1.4.2/backend/ipp.c 2009-12-22 13:04:26.570082893 +0000 @@ -802,6 +802,15 @@ main(int argc, /* I - Number of comm return (CUPS_BACKEND_STOP); } + else if (ipp_status == IPP_NOT_AUTHORIZED || ipp_status == IPP_FORBIDDEN) + { + if (!strncmp(httpGetField(http, HTTP_FIELD_WWW_AUTHENTICATE), + "Negotiate", 9)) + auth_info_required = "negotiate"; + + fprintf(stderr, "ATTR: auth-info-required=%s\n", auth_info_required); + return (CUPS_BACKEND_AUTH_REQUIRED); + } else { _cupsLangPrintf(stderr,