diff --git a/lib/http.c b/lib/http.c
index 5b30f8a..308eff2 100644
--- a/lib/http.c
+++ b/lib/http.c
@@ -731,6 +731,7 @@ CURLcode Curl_http_input_auth(struct connectdata *conn,
    *
    */
 
+  while(*start) {
 #ifdef USE_HTTP_NEGOTIATE
   if(checkprefix("GSS-Negotiate", start) ||
       checkprefix("Negotiate", start)) {
@@ -840,6 +841,14 @@ CURLcode Curl_http_input_auth(struct connectdata *conn,
         }
       }
 
+      /* there may be multiple methods on one line, so keep reading */
+      while(*start && *start != ',') /* read up to the next comma */
+        start++;
+      if(*start == ',') /* if we're on a comma, skip it */
+        start++;
+      while(*start && ISSPACE(*start))
+        start++;
+  }
   return CURLE_OK;
 }
 

