anchor.diff:  
   %% What is this *actually* supposed to test?
   implicit_inet6(Config) when is_list(Config) ->
  +    ?TC_TRY(implicit_inet6, fun() -> do_implicit_inet6(Config) end).
  +
  +do_implicit_inet6(_Config) ->
       ?P("begin"),
  -    Hostname = log_ok(inet:gethostname()),
  -    ?P("try create socket"),
  +    %% First
  +    ?P("try create server socket (1)"),
       case gen_sctp:open(0, [inet6]) of
   	{ok, S1} ->
  -	    case inet:getaddr(Hostname, inet6) of
  -		{ok, Host} ->
  -		    Loopback = {0,0,0,0,0,0,0,1},
  -		    ?P("*** ~s: ~p ***", ["Loopback", Loopback]),
  -		    implicit_inet6(S1, Loopback),
  -		    ok = gen_sctp:close(S1),
  -		    %%
  -		    Localhost = log_ok(inet:getaddr("localhost", inet6)),
  -		    ?P("*** ~s: ~p ***", ["localhost", Localhost]),
  -		    S2 = log_ok(gen_sctp:open(0, [{ip,Localhost}])),
  -		    implicit_inet6(S2, Localhost),
  -		    ok = gen_sctp:close(S2),
  -		    %%
  -		    ?P("*** ~s: ~p ***", [Hostname, Host]),
  -		    S3 = log_ok(gen_sctp:open(0, [{ifaddr, Host}])),
  -		    implicit_inet6(S3, Host),
  -		    ok = gen_sctp:close(S1),
  -		    ?P("done"),
  -                    ok;
  -		{error, eafnosupport} ->
  -		    ok = gen_sctp:close(S1),
  -		    {skip, "Can not look up IPv6 address"}
  -	    end;
  -	_ ->
  -	    {skip, "IPv6 not supported"}
  -    end.
  +            Loopback = {0,0,0,0,0,0,0,1},
  +            ?P("*** ~s: ~p ***", ["Loopback", Loopback]),
  +            implicit_inet6(S1, Loopback),
  +            ok = gen_sctp:close(S1),
  +            
  +            %% Second
  +            ?P("try create server socket (2)"),
  +            Localhost = log_ok(inet:getaddr("localhost", inet6)),
  +            S2 = log_ok(gen_sctp:open(0, [{ip,Localhost}])),
  +            ?P("*** ~s: ~p ***", ["localhost", Localhost]),
  +            implicit_inet6(S2, Localhost),
  +            ok = gen_sctp:close(S2),
  +            
  +            %% Third
  +            ?P("try create server socket (3)"),
  +            Hostname = log_ok(inet:gethostname()),
  +            Addr     = case inet:getaddr(Hostname, inet6) of
  +                           {ok, A} ->
  +                               A;
  +                           {error, eafnosupport} ->
  +                               ok = gen_sctp:close(S1),
  +                               ?SKIPT("Can not look up IPv6 address")
  +                       end,
  +            S3 = log_ok(gen_sctp:open(0, [{ifaddr, Addr}])),
  +            ?P("*** ~s: ~p ***", [Hostname, Addr]),
  +            implicit_inet6(S3, Addr),
  +            ok = gen_sctp:close(S1),
  +            ?P("done"),
  +            ok;
  +        {error, eaddrnotavail = Reason} ->
  +            ?SKIPT(open_failed_str(Reason));
  +        _ ->
  +            {skip, "IPv6 not supported"}
  +    end.
  +
   
   implicit_inet6(S1, Addr) ->
       ?P("make (server) listen socket"),
       ok = gen_sctp:listen(S1, true),
       ServerPortNo = log_ok(inet:port(S1)),
       ?P("try create (client) socket"),
  -    S2 = log_ok(gen_sctp:open(0, [inet6, {ifaddr, Addr}])),
  +    S2 = case gen_sctp:open(0, [inet6, {ifaddr, Addr}]) of
  +             {ok, Sock} ->
  +                 ?P("client socket created: ~p", [Sock]),
  +                 Sock;
  +             {error, eaddrnotavail = Reason} ->
  +                 ?P("could not create (client) socket with ifaddr: "
  +                    "~n   ~p", [Addr]),
  +                 ?SKIPT(open_failed_str(Reason))
  +    end,
       {ClientAddr, ClientPortNo} = log_ok(inet:sockname(S2)),
       ?P("try connect"
          "~n   from (connector): ~p, ~p (~p)"
  
positive.code: 	_ -> A = B
      end.
  
  timestamp() ->
      erlang:monotonic_time().
  
  
  
negative.code: setopt(S, Opt, Val) ->
      inet:setopts(S, [{Opt,Val}]).
  
  
  flush() ->
      receive
  