anchor.diff:  %% the current state name StateName is called to handle the event. It is also 
   %% called if a timeout occurs. 
   %%--------------------------------------------------------------------
  -connecting({irc, IrcConnection, connected}, State) ->
  +connecting({irc, IrcConnection, connected}, State = #state{user=User}) ->
       erlang:link(IrcConnection),
  -    {next_state, login_pass, State#state{con=IrcConnection}};
  +    {ok, {Address, _Port}} = irc_connection:peername(IrcConnection),
  +    {next_state, login_pass, State#state{con=IrcConnection,user=User#user{host=Address}}};
   connecting(Msg, State) ->
       {stop, {unexpected, Msg}, State}.
   
  
positive.code: %% other message than a synchronous or asynchronous event
  %% (or a system message).
  %%--------------------------------------------------------------------
  handle_info(_Info, StateName, State) ->
      {next_state, StateName, State}.
  
  
negative.code: %% Reason. The return value is ignored.
  %%--------------------------------------------------------------------
  terminate(Reason, StateName, _State) ->
      ?INFO("Shutting down (state ~p) - ~p", [StateName, Reason]),
      ok.
  
  %%--------------------------------------------------------------------
  