anchor.diff:      
       JsonResults = case length(Revs) > MaxN of
       false ->
  -        Url = BaseUrl ++ "&open_revs=" ++ lists:flatten(?JSON_ENCODE(Revs)),
  +        Url = ?l2b(BaseUrl ++ "&open_revs=" ++ ?JSON_ENCODE(Revs)),
           do_http_request(Url, get, Headers);
       true ->
           {_, Rest, Acc} = lists:foldl(
           fun(Rev, {Count, RevsAcc, AccResults}) when Count =:= MaxN ->
  -            QSRevs = lists:flatten(?JSON_ENCODE(lists:reverse(RevsAcc))),
  -            Url = BaseUrl ++ "&open_revs=" ++ QSRevs,
  +            QSRevs = ?JSON_ENCODE(lists:reverse(RevsAcc)),
  +            Url = ?l2b(BaseUrl ++ "&open_revs=" ++ QSRevs),
               {1, [Rev], AccResults++do_http_request(Url, get, Headers)};
           (Rev, {Count, RevsAcc, AccResults}) ->
               {Count+1, [Rev|RevsAcc], AccResults}
           end, {0, [], []}, Revs),
  -        Acc ++ do_http_request(BaseUrl ++ "&open_revs=" ++ 
  -            lists:flatten(?JSON_ENCODE(lists:reverse(Rest))), get, Headers)
  +        Acc ++ do_http_request(?l2b(BaseUrl ++ "&open_revs=" ++
  +            ?JSON_ENCODE(lists:reverse(Rest))), get, Headers)
       end,
       
       Results =
  
positive.code:     {Pos, [RevId|_]} = Rev,
      Url = lists:flatten([DbUrl, url_encode(Id), "/", url_encode(?b2l(Name)),
          "?rev=", ?b2l(couch_doc:rev_to_str({Pos,RevId}))]),
      ?LOG_DEBUG("Attachment URL ~p", [Url]),
      {ok, RcvFun} = make_attachment_stub_receiver(Url, Headers, Name, 
          Type, Length),
      {Name, {Type, {RcvFun, Length}}}.
  
negative.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, ?l2b(["failed to replicate ", Url])});
      
  make_attachment_stub_receiver(Url, Headers, Name, Type, Length, Retries) ->
      %% start the process that receives attachment data from ibrowse
  