anchor.diff:  
   %%--------------------------------------------------------------------
   %% Function: to_norm(Params)
  -%%           Params = list() of string(), each string is a "name=val" 
  +%%           Params = list() of string(), each string is a "name=val"
   %%                    pair or a single "name" value and may contain
   %%                    %HH hex escape codes - they are treated as case
   %%                    insensitive
  -%% Descrip.: convert a uri-parameter list to a normalized (a non case 
  +%% Descrip.: convert a uri-parameter list to a normalized (a non case
   %%           sensitive form) form
  -%% Returns : url_param record() | 
  -%%           throw({error, duplicate_key}) if a "name" 
  -%%           component in Params is duplicated 
  -%%--------------------------------------------------------------------
  -to_norm(Params) when is_list(Params) -> 
  +%% Returns : url_param record() |
  +%%           throw({error, duplicate_key}) if a "name"
  +%%           component in Params is duplicated
  +%% Note    : URL parameters may not contain quotes, and the = is
  +%%           literal in the RFC3261 BNF, not EQUAL (which may be
  +%%           surrounded with linear whitespace)
  +%%--------------------------------------------------------------------
  +to_norm(Params) when is_list(Params) ->
       F = fun(E) ->
   		case string:tokens(E, "=") of
  -		    [Name, Val] -> 
  -			{ sipurl:unescape_str(httpd_util:to_lower(Name)), 
  +		    [Name, Val] ->
  +			{ sipurl:unescape_str(httpd_util:to_lower(Name)),
   			  sipurl:unescape_str(httpd_util:to_lower(Val))
   			 };
   		    [Name] ->
  
positive.code:     %% add Key-Val to empty url_param
      io:format("test: add/2 - 1~n"),
      UrlParam1 = to_norm([]),
      ADB1 = key_val_db:new([{"foo","bar"}]), 
      #url_param{pairs = ADB1 } = add(UrlParam1, "foo", "bar"),
  
      %% add Key _only_ to empty url_param
      io:format("test: add/2 - 2~n"),
      ADB2 = key_val_db:new([{"foo", none}]), 
      #url_param{pairs = ADB2 } = add(UrlParam1, "foo"),
  
      
      UrlParam2 = to_norm(["foo=bar", "bar=42", "a=43"]),
  
      %% add a new key-val
  
negative.code:     io:format("test: to_string_list/1 - 3~n"),
      Urlparam3 = to_norm(["foo%3d=bAr", "Ba%3DR", "lr", "a=43"]),
      ["foo%3D=bar", "ba%3Dr", "lr=true", "a=43"] = to_string_list(Urlparam3),
  
  
      %% test to_string
      %%---------------------------------------------------------------
      %% test that case and missing value part are handled properly
      io:format("test: to_string/1 - 1~n"),
      ";foo=bar;bar;lr=true;a=43" = to_string(Urlparam1),
      %% test empty param
      io:format("test: to_string/1 - 2~n"),
      "" = to_string(Urlparam2),
  
  