anchor.diff:  %% does not return until Module:init/1 has returned.  
   %%--------------------------------------------------------------------
   start_link(Nick, Host) ->
  -    start_link(Nick, Nick, Nick, Host, 6667, [{reconnect, 60}]).
  +    start_link(Nick, Host, 6667).
  +
  +start_link(Nick, Host, Port) ->
  +    start_link(Nick, Nick, Nick, Host, Port, [{reconnect, 60}]).
   
   start_link(Nick, Username, Realname, Host, Port, Options) ->
       gen_fsm:start_link(?MODULE, [#conf{host=Host,
  
positive.code: %% gen_fsm:sync_send_all_state_event/2,3, this function is called to handle
  %% the event.
  %%--------------------------------------------------------------------
  handle_sync_event(shutdown, _From, _StateName, S = #state{con=P}) when is_pid(P) ->
      unlink(P),
      irc_connection:close(P),
      {stop, normal, ok, S#state{con=undefined}};
  handle_sync_event(shutdown, _From, _StateName, S) ->
      {stop, normal, ok, S};
  handle_sync_event(Event, _From, StateName, State) ->
      ?WARN("Unexpected event ~p in state ~p", [Event, StateName]),
      {next_state, StateName, State}.
  
negative.code:                           Chans),
      ?INFO("Joining: ~s~nMembers: ~p", [ChanName,
                                         lists:usort([Members|Chan#chan.members])]),
      {next_state, joining_channel, State#state{channels=NewChans}};
  joining_channel({irc, _Pid, #irc_cmd{name=topic, args=A}},
                  State = #state{channels=Chans}) ->
      Topic = proplists:get_value(topic, A),
      ChanName = proplists:get_value(channel, A),
      Chan = dict:fetch(ChanName, Chans),
      NewChans = dict:store(ChanName, 
                            Chan#chan{topic=(Chan#chan.topic)#topic{text=Topic}},
                            Chans),
      {next_state, joining_channel, State#state{channels=NewChans}};
  joining_channel({irc, _Pid, #irc_cmd{name=topicinfo, args=A}},
                  State = #state{channels=Chans}) ->
      TS = proplists:get_value(topic_set_at, A),
      Author = proplists:get_value(topic_set_by, A),
      ChanName = proplists:get_value(channel, A),
      Chan = dict:fetch(ChanName, Chans),
      NewChan = Chan#chan{topic=(Chan#chan.topic)#topic{topic_ts=TS,
                                                        author=Author}},
      NewChans = dict:store(ChanName, 
                            NewChan,
                            Chans),
      ?INFO("Topic for ~s: ~p~n", [ChanName,
                                   NewChan#chan.topic]),
      {next_state, joining_channel, State#state{channels=NewChans}};
  joining_channel(E = {irc, _Pid, C}, State) ->
      ?INFO("Unknown message in join state, retreating to connected state.~n~p",
  