anchor.diff:      case string:tokens(Info, " ") of
           [Target, Command] ->
               Cmd#cmd{name=error,
  +                    target=Target,
                       args=[{code, Code},
  -                          {target, Target},
                             {command, Command},
                             {text, Text}]}
       end.
   
   
  -
  -parse_notice(Cmd, [Facility, Text]) ->
  -    Cmd#cmd{args = [{facility, Facility}, {text, Text}]}.
  -
  -
  -
  +%%--------------------------------------------------------------------
  +parse_notice(Cmd, [Target, Text]) ->
  +    Cmd#cmd{args = [{text, Text}], target=Target};
  +parse_notice(Cmd, [Target | Text]) ->
  +    Cmd#cmd{target = string:strip(Target, right, $\s),
  +            args = [{text, irc_parser:join($:, Text)}]}.
  +
  +%%--------------------------------------------------------------------
   parse_server(Cmd, Args) when is_list(Args) ->
       parse_server(Cmd, irc_parser:split($:, Args));
   parse_server(Cmd, {Args,Description}) ->
  
positive.code:     parse_error(Cmd, lists:split(string:chr(Args, $:), Args));
  parse_args(notice, Args, Cmd) ->
      parse_notice(Cmd, string:tokens(Args, ":"));
  parse_args(needmoreparams, Args, Cmd) ->
      parse_error(needmoreparams, string:tokens(Args, ":"), Cmd);
  parse_args(pass, ":" ++ Pass, Cmd) ->
      Cmd#cmd{args=[{pass, Pass}]};
  parse_args(server, Args, Cmd) ->
      parse_server(Cmd, Args);
  parse_args(nick, Args, Cmd) ->
      parse_nick(Cmd, Args);
  parse_args(end_of_burst, _Args, Cmd) ->
      Cmd#cmd{args = []};
  parse_args(burst, Args, Cmd) ->
      parse_burst(Cmd, string:tokens(Args, " "));
  parse_args(ping, [$:|Token], Cmd) ->
      Cmd#cmd{args=[{token , Token}]};
  parse_args(Name, Args, Cmd) when Name == welcome;
                                   Name == yourhost;
                                   Name == created;
                                   Name == myinfo ->
      
      {Target, Msg} = irc_parser:split(Args),
      Cmd#cmd{args=[{target, Target},
                    {message, Msg}]}.
  
  
  
  parse_error(Cmd, {Reason, Text}) ->
      Cmd#cmd{args = [{error, string:strip(Reason, right, $:)},
                      {text, string:strip(Text, both, $\s)}]};
  
negative.code: parse_line(Line) ->
      parse_args(irc_parser:parse_line(Line)).
  
  %%--------------------------------------------------------------------
  parse_args(Cmd) when is_record(Cmd, cmd) ->
      parse_args(Cmd#cmd.name, Cmd#cmd.args, Cmd).
  
  