anchor.diff:  showmail(Session, MailNr) ->
       MailStr = integer_to_list(MailNr),
       tick_session(Session#session.cookie),
  -    Message = retr(?POPSERVER, Session#session.user,
  -		   Session#session.passwd, MailNr),
  -
  -    Formated = format_message(Message, MailNr),
  +
  +    Formated = 
  +	case retr(?POPSERVER, Session#session.user,
  +		  Session#session.passwd, MailNr) of
  +	    {error, Reason} ->
  +		format_error(Reason);
  +	    Message ->
  +		format_message(Message, MailNr)
  +	end,
   
       (dynamic_headers() ++
        [{ehtml,
  
positive.code: 	 "}"
  	},
  	{style, [{type,"text/css"}],
  	 "A:link    { color: 0;text-decoration: none}\n"
  	 "A:visited { color: 0;text-decoration: none}\n"
  	 "A:active  { color: 0;text-decoration: none}\n"},
  
negative.code: 	    end
      end.
  
  parse_addr(AddrStr) ->
      Addrs = token_addrs(AddrStr, [], false),
      Op =
  	fun(From) ->
  		case {string:chr(From,$<),string:chr(From,$>)} of
  		    {S,E} when S>0, E>0 ->
  			string:substr(From,S,(E-S)+1);
  		    _ ->
  			string:strip(From)
  		end
  	end,
      Fs = [Op(F) || F <- Addrs].
  
  format_addr(Addr) ->
      format_list(Addr).
  
  token_addrs([], [], _) ->
      [];
  token_addrs([], Acc, _) ->
      [lists:reverse(Acc)];
  token_addrs([C=$"|R], Acc, true) ->
      token_addrs(R, [C|Acc], false);
  token_addrs([C=$"|R], Acc, false) ->
      token_addrs(R, [C|Acc], true);
  token_addrs([C=$,|R], Acc, false) ->
      [lists:reverse(Acc)|token_addrs(R, [], false)];
  token_addrs([C|R], Acc, InQuote) ->
      token_addrs(R, [C|Acc], InQuote).
  
  format_list([]) -> [];
  format_list([E]) -> E;
  