anchor.diff:  
   parse_args(join, [$:|Chans], Cmd) ->
       Cmd#irc_cmd{args=[{channels, string:tokens(Chans, ",")}]};
  +
  +parse_args(part, Args, Cmd) ->
  +    {Chans, Message} = irc_parser:split($:, Args),
  +    Cmd#irc_cmd{args=[{channels, string:tokens(string:strip(Chans,both,$\s), ",")},
  +                      {message, Message}]};
   
   parse_args(notopic, _Args, Cmd) ->
       Cmd;
  
positive.code:                       {message, Message}],
                  target=Nick};
  
  parse_args(Name, Args, Cmd) when Name == welcome;
                                   Name == yourhost;
                                   Name == created;
                                   Name == myinfo;
                                   Name == isupport;
                                   Name == luserclient;
                                   Name == luserop;
                                   Name == luserchannels;
                                   Name == luserme;
                                   Name == luserconns;
                                   Name == motdstart;
                                   Name == motd;
                                   Name == endofmotd;
                                   Name == n_global;
                                   Name == n_local ->
      {Target, Msg} = irc_parser:split(Args),
      Cmd#irc_cmd{target=Target,
                  args=[{message, Msg}]}.
  
  %%--------------------------------------------------------------------
  
  
negative.code: 
  parse_burst_userdata(#irc_cmd{target = Chan} = Cmd, ["o," ++ Users | Rest]) ->
      UserNumerics = string:tokens(Users, ","),
      NewMembers = [{op, N} || N <- UserNumerics],
      OldMembers = Chan#chan.members,
      parse_burst_userdata(Cmd#irc_cmd{target=Chan#chan{members=lists:umerge(NewMembers,
                                                                             OldMembers)}},
                           Rest);
  parse_burst_userdata(#irc_cmd{target = Chan} = Cmd, ["v," ++ Users | Rest]) ->
      UserNumerics = string:tokens(Users, ","),
      NewMembers = [{voice, N} || N <- UserNumerics],
      OldMembers = Chan#chan.members,
      parse_burst_userdata(Cmd#irc_cmd{target=Chan#chan{members=lists:umerge(NewMembers,
                                                                             OldMembers)}},
                           Rest);
  parse_burst_userdata(#irc_cmd{target = Chan} = Cmd, ["ov," ++ Users | Rest]) ->
      UserNumerics = string:tokens(Users, ","),
      NewMembers = [{op_voice, N} || N <- UserNumerics],
      OldMembers = Chan#chan.members,
      parse_burst_userdata(Cmd#irc_cmd{target=Chan#chan{members=lists:umerge(NewMembers,
                                                                             OldMembers)}},
                           Rest);
  parse_burst_userdata(#irc_cmd{target = Chan} = Cmd, [Users | Rest]) ->
      UserNumerics = string:tokens(Users, ","),
      NewMembers = [{user, N} || N <- UserNumerics],
      OldMembers = Chan#chan.members,
      parse_burst_userdata(Cmd#irc_cmd{target=Chan#chan{members=lists:umerge(NewMembers,
                                                                             OldMembers)}},
                           Rest);
  parse_burst_userdata(Cmd, []) ->
      Cmd.
  