anchor.diff:  
   parse_args(error, ":" ++ Args, Cmd) ->
       parse_error(Cmd, lists:split(string:chr(Args, $:), Args));
  -parse_args(notice, Args, Cmd) ->
  -    parse_notice(Cmd, string:tokens(Args, ":"));
  +
  +parse_args(Name, Args, Cmd) when Name == notice; Name == privmsg ->
  +    {Target, Msg} = irc_parser:split($:, Args),
  +    parse_notice_or_privmsg(Cmd#irc_cmd{target=string:strip(Target, right, $\s)},
  +                            Msg);
   
   parse_args(needmoreparams, Args, Cmd) ->
       parse_error(needmoreparams, string:tokens(Args, ":"), Cmd);
  
positive.code:                               {command, Command},
                                {text, Text}]}
      end.
  
  
  %%--------------------------------------------------------------------
  parse_notice(Cmd, [Target, Text]) ->
      Cmd#irc_cmd{args = [{text, Text}], target=Target};
  parse_notice(Cmd, [Target | Text]) ->
      Cmd#irc_cmd{target = string:strip(Target, right, $\s),
                  args = [{text, irc_parser:join($:, Text)}]}.
  
  %%--------------------------------------------------------------------
  parse_server(Cmd, Args) when is_list(Args) ->
  
negative.code: parse_args(PingPong, [$:|Token], Cmd) when PingPong == ping; PingPong == pong ->
      Cmd#irc_cmd{args=[{token , Token}]};
  
  
  parse_args(join, [$:|Chans], Cmd) ->
      Cmd#irc_cmd{args=[{channels, string:tokens(Chans, ",")}]};
  
  parse_args(notopic, _Args, Cmd) ->
      Cmd;
  parse_args(topic, [$:|Topic], Cmd) ->
      Cmd#irc_cmd{args=[{topic, Topic}]};
  
  parse_args(namreply, Arg, Cmd) ->
      case string:tokens(Arg," ") of
          [Nick, ChanType, Chan | MemberStrs] when length(MemberStrs) >= 1 ->
              Members = [string:strip(hd(MemberStrs), left, $:)|tl(MemberStrs)],
              Cmd#irc_cmd{args=[{channel, string:strip(Chan, right, $\s)},
                                {members, lists:map(fun parse_nick/1, Members)},
                                {channel_type, parse_chantype(ChanType)}],
                          target=Nick}
      end;
  
  parse_args(endofnames, Arg, Cmd) ->
      {Chan, Message} = irc_parser:split($:, Arg),
  