anchor.diff:      {unknown_transfer_encoding, _} -> FunWrapper({<<>>, done});
       undefined -> FunWrapper({<<>>, done});
       0 -> FunWrapper({<<>>, done});
  -    chunked -> recv_chunked_body(Sock, ?MAX_CHUNK_SIZE, FunWrapper, []);
  -    Length -> recv_unchunked_body(Sock, ?MAX_CHUNK_SIZE, Length, FunWrapper, [])
  +    chunked -> recv_chunked_body(Sock, ?MAX_CHUNK_SIZE, FunWrapper, InitialState);
  +    Length -> recv_unchunked_body(Sock, ?MAX_CHUNK_SIZE, Length, FunWrapper, InitialState)
       end.
           
   body_length(H) ->
  
positive.code:     0 ->  
          Bin = read_chunk(Sock, 0),
          Acc1 = Fun({Bin, done}, Acc),
          Acc1;
          %%iolist_to_binary(lists:reverse([Bin|Acc]));
          
      Length ->
          recv_chunked_body(Sock, MaxChunkSize, Length, Fun, Acc)
      end.
  
negative.code:     
  
  recv_body(Sock, Headers, Fun) ->
      {WrappedFun, InitialState} = case Fun of
      {Fun1, State1} ->
          {Fun1, State1};
      _Fun ->
          {Fun, []}
      end,
      
      FunWrapper = fun(Data, Acc) ->
          Fun(Data, Acc)
  