anchor.diff:      gen_fsm:reply(From, ok),
       State#state{renegotiation = undefined};
   ack_connection(#state{renegotiation = {false, first}, 
  -		      start_or_recv_from = StartFrom} = State) when StartFrom =/= undefined ->
  +		      start_or_recv_from = StartFrom,
  +		      timer = Timer} = State) when StartFrom =/= undefined ->
       gen_fsm:reply(StartFrom, connected),
  -    State#state{renegotiation = undefined, start_or_recv_from = undefined};
  +    cancel_timer(Timer),
  +    State#state{renegotiation = undefined, start_or_recv_from = undefined, timer = undefined};
   ack_connection(State) ->
       State.
   
  
positive.code:      get_timeout(State)};
  
  handle_sync_event({start, Timeout}, StartFrom, hello, State) ->
      start_or_recv_cancel_timer(Timeout, StartFrom),
      hello(start, State#state{start_or_recv_from = StartFrom});
  
  %% The two clauses below could happen if a server upgrades a socket in
  %% active mode. Note that in this case we are lucky that
  
negative.code: 	  log_alert,           % boolean() 
  	  renegotiation,       % {boolean(), From | internal | peer}
  	  start_or_recv_from,  % "gen_fsm From"
  	  timer,               % start_or_recv_timer
  	  send_queue,          % queue()
  	  terminated = false,  %
  	  allow_renegotiate = true
  