anchor.diff:  				      send_buf = queue:new()
   				     }),
       D = add_request(true, ChannelId, From, D2),
  -    start_timeout(ChannelId, From, Timeout),
  +    start_channel_request_timer(ChannelId, From, Timeout),
       {keep_state, cache_cancel_idle_timer(D)};
   
   handle_event({call,From}, {send_window, ChannelId}, {connected,_}, D) ->
  
positive.code: 	    {error, timeout}
      end.
  
  start_timeout(_,_, infinity) ->
      ok;
  start_timeout(Channel, From, Time) ->
      erlang:send_after(Time, self(), {timeout, {Channel, From}}).
  
  
negative.code: start_connection(client = Role, Socket, Options, Timeout) ->
      try
  	{ok, Pid} = sshc_sup:start_child([Role, Socket, Options]),
  	ok = socket_control(Socket, Pid, Options),
  	handshake(Pid, erlang:monitor(process,Pid), Timeout)
      catch
  	exit:{noproc, _} ->
  	    {error, ssh_not_started};
  