anchor.diff:      undefined -> Req;
       [] -> Req;
       Cookie ->
  -        [User, TimeStr | HashParts] = try
  +        [User, TimeStr, HashStr] = try
               AuthSession = couch_util:decodeBase64Url(Cookie),
  -            [_A, _B | _Cs] = re:split(?b2l(AuthSession), ":", [{return, list}])
  +            [_A, _B, _Cs] = re:split(?b2l(AuthSession), ":",
  +                                     [{return, list}, {parts, 3}])
           catch
               _:_Error ->
                   Reason = <<"Malformed AuthSession cookie. Please clear your cookies.">>,
  
positive.code:                 UserSalt = couch_util:get_value(<<"salt">>, UserProps, <<"">>),
                  FullSecret = <<Secret/binary, UserSalt/binary>>,
                  ExpectedHash = crypto:sha_mac(FullSecret, User ++ ":" ++ TimeStr),
                  Hash = ?l2b(string:join(HashParts, ":")),
                  Timeout = list_to_integer(
                      couch_config:get("couch_httpd_auth", "timeout", "600")),
                  ?LOG_DEBUG("timeout ~p", [Timeout]),
  
negative.code:     AuthorizationHeader = header_value(Req, "Authorization"),
      case AuthorizationHeader of
      "Basic " ++ Base64Value ->
          case re:split(base64:decode(Base64Value), ":",
                        [{return, list}, {parts, 2}]) of
          ["_", "_"] ->
              % special name and pass to be logged out
              nil;
          [User, Pass] ->
              {User, Pass};
          _ ->
              nil
          end;
  