anchor.diff:  		   requests = [#http_request{host = Host, path = Path,
   					     listener = Listener} | _]} = State) ->
   
  +    %% Callback!
       error_logger:info_msg("~p got response for ~p ~p:~n~p",
   			  [self(), Host, Path, {Code, Status, Headers}]),
       Listener ! {response, Code, Status, Headers},
   
  +    %% Compression?
  +    NewState =
  +	case lists:keysearch("content-encoding", 1, Headers) of
  +	    {value, {_, "deflate"}} ->
  +		ZStream = zlib:open(),
  +		ok = zlib:inflateInit(ZStream),
  +		State#state{zstream = ZStream};
  +	    _ ->
  +		State#state{zstream = none}
  +	end,
  +
  +    %% Transfer encoding?
       Chunked =
   	case lists:keysearch("transfer-encoding", 1, Headers) of
   	    {value, {_, [$c, $h, $u, $n, $k, $e, $d | _]}} ->
  
positive.code: 	Code == 204 orelse
  	Code == 304 orelse
  	Length == 0 ->
  	    NewState = one_request_done(State),
  	    NewState#state{mode = line,
  			   state = status,
  			   chunked = false,
  			   dumb = Dumb};
  	Chunked ->
  	    State#state{mode = line,
  			state = chunksize,
  			chunked = true,
  			dumb = Dumb};
  	Length =/= unknown ->
  	    State#state{mode = packet,
  			packet_length = Length,
  			chunked = false,
  			dumb = Dumb};
  	true ->
  	    State#state{mode = packet,
  			packet_length = -1,
  			chunked = false,
  			dumb = true}
      end;
  
  handle_line(HeaderLine,
  
negative.code: 
  
  handle_chunk(Chunk, #state{requests = [#http_request{listener = Listener} | _]} = State) ->
      case State#state.zstream of
  	none ->
  	    Listener ! {body, Chunk};
  	ZStream ->
  	    DecompressedChunk =
  		lists:flatten([binary_to_list(D) ||
  				  D <- zlib:inflate(ZStream, list_to_binary(Chunk))]),
  	    Listener ! {body, DecompressedChunk}
      end,
      State.
  
  handle_packet_end(#state{chunked = true} = State) ->
  