anchor.diff:          true ->
             check_context(Rest, Label, Pos + 1);
           false ->
  -          ErrorMsg = error_msg("Joiner ~p pnot allowed at posion ~p in ~p", [CP, Pos, Label]),
  +          ErrorMsg = error_msg("Joiner ~p not allowed at posion ~p in ~p", [CP, Pos, Label]),
             erlang:exit({bad_label, {contextj, ErrorMsg}})
   
         end;
  
positive.code: decode_1([Label|Labels], Acc) ->
    decode_1(Labels, lists:reverse(ulabel(Label), [$.|Acc])).
  
  ulabel([$x,$n,$-,$-|Label0]) ->
    Label = punycode:decode(lowercase(Label0)),
    ok = check_label(Label),
    Label;
  ulabel(Label) ->
    ok = check_label(lowercase(Label)),
    Label.
  
  
  %% Lowercase all chars in Str
  -spec lowercase(String::unicode:chardata()) -> unicode:chardata().
  lowercase(CD) when is_list(CD) ->
    lowercase_list(CD);
  lowercase(CD) when is_binary(CD) ->
    lowercase_bin(CD,<<>>).
  
  lowercase_list(CPs0) ->
    case unicode_util_compat:lowercase(CPs0) of
      [Char|CPs] -> append(Char,lowercase_list(CPs));
      [] -> []
    end.
  
  lowercase_bin(CPs0, Acc) ->
    case unicode_util_compat:lowercase(CPs0) of
      [Char|CPs] when is_integer(Char) ->
        lowercase_bin(CPs, <<Acc/binary, Char/utf8>>);
      [Chars|CPs] ->
        lowercase_bin(CPs, <<Acc/binary,
          << <<CP/utf8>> || CP <- Chars>>/binary >>);
      [] -> Acc
    end.
  
  append(Char, <<>>) when is_integer(Char) -> [Char];
  append(Char, <<>>) when is_list(Char) -> Char;
  
negative.code:         false ->
            ok
        end
    end;
  check_hyphen(Label) ->
    case (lists:nth(1, Label) == $-) orelse (lists:last(Label) == $-) of
      true ->
        erlang:exit({bad_label, {hyphen, "Label must not start or end with a hyphen"}});
      false ->
        ok
    end.
  
  check_initial_combiner([CP|_]) ->
  