anchor.diff:  	    ($_, Acc) -> Acc;
   	    ($+, Acc) -> Acc;
   	    ($`, Acc) -> Acc;
  -	    ($', Acc) -> Acc;
  +	    ($\', Acc) -> Acc;
   	    ($~, Acc) -> Acc;
   	    (Char, Acc) ->
  -		Acc and is_alphanum(Char) 
  -	end,	
  +		Acc and is_alphanum(Char)
  +	end,
       lists:foldl(F,true,Str).
  -    
  +
   
   %%--------------------------------------------------------------------
   %% Function: is_hostname(Str)
   %%           Str = string(), the host string
  -%% Descrip.: parse host string, throw a exception if it doesn't 
  -%%           conform to the format specified in RFC3261 chapter 25.1 
  +%% Descrip.: parse host string, throw a exception if it doesn't
  +%%           conform to the format specified in RFC3261 chapter 25.1
   %%           p218
   %% Returns : Str | throw()
   %% Note    : this function only matches symbolic hostnames
  
positive.code: %% "@bar"     = throw()
  %% "foo@@bar" = throw()
  %% "@"        = throw()
  %% ""         = {""}          XXX is this ok ? nothing currently 
  %%                            depends on this behaviour.
  %%--------------------------------------------------------------------
  split_fields(FieldStr, Sep) ->
  
negative.code:     end.
  
  %%--------------------------------------------------------------------
  %% BNF checking functions, based on RFC3261 chapter 25
  %%--------------------------------------------------------------------
  is_alpha(Char) ->
      if
  	(Char >= $A) and (Char =< $Z) ->
  	    true;
  	(Char >= $a) and (Char =< $z) ->
  