diff -up cups-2.0.3/scheduler/client.c.str4538 cups-2.0.3/scheduler/client.c --- cups-2.0.3/scheduler/client.c.str4538 2015-06-25 08:35:22.196788744 +0100 +++ cups-2.0.3/scheduler/client.c 2015-06-25 08:35:38.079786648 +0100 @@ -2294,6 +2294,9 @@ cupsdSendError(cupsd_client_t *con, /* I http_status_t code, /* I - Error code */ int auth_type)/* I - Authentication type */ { + char location[HTTP_MAX_VALUE]; /* Location field */ + + cupsdLogClient(con, CUPSD_LOG_DEBUG2, "cupsdSendError code=%d, auth_type=%d", code, auth_type); @@ -2326,8 +2329,12 @@ cupsdSendError(cupsd_client_t *con, /* I * never disable it in that case. */ + strlcpy(location, httpGetField(con->http, HTTP_FIELD_LOCATION), sizeof(location)); + httpClearFields(con->http); + httpSetField(con->http, HTTP_FIELD_LOCATION, location); + if (code >= HTTP_STATUS_BAD_REQUEST && con->type != CUPSD_AUTH_NEGOTIATE) httpSetKeepAlive(con->http, HTTP_KEEPALIVE_OFF);