anchor.diff:  %%% Behaviour callbacks
   -export([handle_event/4, terminate/3, format_status/2, code_change/4]).
   
  -%%% Exports not intended to be used :)
  +%%% Exports not intended to be used :). They are used for spawning and tests
   -export([init_connection_handler/3,	   % proc_lib:spawn needs this
   	 init_ssh_record/3,		   % Export of this internal function
   					   % intended for low-level protocol test suites
  
positive.code: 	    {error, timeout}
      end.
  
  start_timeout(_,_, infinity) ->
      ok;
  start_timeout(Channel, From, Time) ->
      erlang:send_after(Time, self(), {timeout, {Channel, From}}).
  
  
negative.code: handle_event({call,From}, {request, ChannelPid, ChannelId, Type, Data, Timeout}, {connected,_}, D0) ->
      D = handle_request(ChannelPid, ChannelId, Type, Data, true, From, D0),
      %% Note reply to channel will happen later when reply is recived from peer on the socket
      start_channel_request_timer(ChannelId, From, Timeout),
      {keep_state, cache_request_idle_timer_check(D)};
  
  handle_event({call,From}, {request, ChannelId, Type, Data, Timeout}, {connected,_}, D0) ->
      D = handle_request(ChannelId, Type, Data, true, From, D0),
      %% Note reply to channel will happen later when reply is recived from peer on the socket
      start_channel_request_timer(ChannelId, From, Timeout),
      {keep_state, cache_request_idle_timer_check(D)};
  
  handle_event({call,From}, {global_request, Pid, _, _, _} = Request, {connected,_}, D0) ->
  