anchor.diff:  do_http_request(Url, Action, Headers, JsonBody) ->
       do_http_request(Url, Action, Headers, JsonBody, 10).
   
  +do_http_request(Url, Action, Headers, Body, Retries) when is_binary(Url) ->
  +    do_http_request(?b2l(Url), Action, Headers, Body, Retries);
   do_http_request(Url, Action, _Headers, _JsonBody, 0) ->
       ?LOG_ERROR("couch_rep HTTP ~p request failed after 10 retries: ~s", 
           [Action, Url]),
  -    exit({http_request_failed, Url});
  +    exit({http_request_failed, ?l2b(["failed to replicate ", Url])});
   do_http_request(Url, Action, Headers, JsonBody, Retries) ->
       ?LOG_DEBUG("couch_rep HTTP ~p request: ~s", [Action, Url]),
       Body =
  
positive.code: make_attachment_stub_receiver(Url, _Headers, _Name, _Type, _Length, 0) ->
      ?LOG_ERROR("streaming attachment request failed after 10 retries: ~s", 
          [Url]),
      exit(attachment_request_failed);
      
  make_attachment_stub_receiver(Url, Headers, Name, Type, Length, Retries) ->
      %% start the process that receives attachment data from ibrowse
  
negative.code:     ReqId = 
      case ibrowse:send_req_direct(Conn, Url, Headers, get, [], Opts, infinity) of
          {ibrowse_req_id, X} -> X;
          {error, Reason} ->
              exit({attachment_request_failed,
                  ?l2b(["ibrowse error on ", Url, " : ", atom_to_list(Reason)])})
      end,
      
      %% tell our receiver about the ReqId it needs to look for
  