anchor.diff:  
   parse_args(notopic, _Args, Cmd) ->
       Cmd;
  -parse_args(topic, [$:|Topic], Cmd) ->
  -    Cmd#irc_cmd{args=[{topic, Topic}]};
  +parse_args(topic, Args, Cmd) ->
  +    {NickChan, Topic} = irc_parser:split($:, Args),
  +    [Nick, Chan] = string:tokens(NickChan, " "),
  +    Cmd#irc_cmd{args=[{topic, Topic},
  +                      {channel, Chan}],
  +                target=Nick};
  +
  +parse_args(topicinfo, Args, Cmd) ->
  +    case string:tokens(Args," ") of
  +        [Nick, Chan, Setter, Ts] ->
  +            Cmd#irc_cmd{target=Nick,
  +                        args=[{channel, Chan},
  +                              {topic_set_by, Setter},
  +                              {topic_set_at, unix_ts_to_datetime(Ts)}]}
  +    end;
   
   parse_args(namreply, Arg, Cmd) ->
       case string:tokens(Arg," ") of
  
positive.code: 
  
  %%--------------------------------------------------------------------
  parse_nick(Cmd, Args) when is_list(Args) ->
      parse_nick(Cmd, split_one_prefix_many_space(Args));
  parse_nick(Cmd, {[Nick,_Something,NickTS,UserName,HostName,"+" ++ UMode,AuthName,Numeric], Description}) ->
      Cmd#irc_cmd{target=#user{numeric=Numeric,
                               nick=Nick,
                               nick_ts=NickTS,
  
negative.code:     parse_server(Cmd, Args);
  
  parse_args(nick, Args, Cmd) ->
      parse_p10_nick(Cmd, Args);
  
  parse_args(end_of_burst, _Args, Cmd) ->
      Cmd#irc_cmd{args = []};
  