anchor.diff:  			handler_after_loop(Req2, State, Handler, HandlerState2,
   				{normal, shutdown});
   		{loop, Req2, HandlerState2} ->
  -			handler_before_loop(Req2, State, Handler, HandlerState2);
  +			handler_after_callback(Req2, State, Handler, HandlerState2);
   		{loop, Req2, HandlerState2, hibernate} ->
  -			handler_before_loop(Req2, State#state{hibernate=true},
  +			handler_after_callback(Req2, State#state{hibernate=true},
   				Handler, HandlerState2)
   	catch Class:Reason ->
   		error_logger:error_msg(
  
positive.code: 		handler_terminate(Req, Handler, HandlerState, Reason),
  		error_terminate(Req, State)
  	end.
  
  %% We don't listen for Transport closes because that would force us
  %% to receive data and buffer it indefinitely.
  
negative.code: 		{ok, Req2, HandlerState} ->
  			handler_handle(Req2, State, Handler, HandlerState);
  		{loop, Req2, HandlerState} ->
  			handler_after_callback(Req2, State, Handler, HandlerState);
  		{loop, Req2, HandlerState, hibernate} ->
  			handler_after_callback(Req2, State#state{hibernate=true},
  				Handler, HandlerState);
  		{loop, Req2, HandlerState, Timeout} ->
  			State2 = handler_loop_timeout(State#state{loop_timeout=Timeout}),
  			handler_after_callback(Req2, State2, Handler, HandlerState);
  		{loop, Req2, HandlerState, Timeout, hibernate} ->
  			State2 = handler_loop_timeout(State#state{
  				hibernate=true, loop_timeout=Timeout}),
  			handler_after_callback(Req2, State2, Handler, HandlerState);
  		{shutdown, Req2, HandlerState} ->
  			terminate_request(Req2, State, Handler, HandlerState,
  				{normal, shutdown});
  