anchor.diff:  		    [ClientFamily, AddressToConnectTo]),
       ?line S2 = ok(gen_sctp:open(0, [ClientFamily])),
       %% Verify client can connect
  -    ?line #sctp_assoc_change{state=comm_up} =
  +    ?line #sctp_assoc_change{state=comm_up} = S2Assoc =
   	ok(gen_sctp:connect(S2, AddressToConnectTo, P1, [])),
       %% verify server side also receives comm_up from client
  -    ?line recv_comm_up_eventually(S1),
  +    ?line S1Assoc = recv_comm_up_eventually(S1),
  +    ?line Result = Fun(S1, ServerFamily, S1Assoc, S2, ClientFamily, S2Assoc),
       ?line ok = gen_sctp:close(S2),
  -    ?line ok = gen_sctp:close(S1).
  +    ?line ok = gen_sctp:close(S1),
  +    Result.
   
   %% If at least one of the addresses is an ipv6 address, return inet6, else inet.
   get_family_by_addrs(Addresses) ->
  
positive.code: 		  {skip, Reason}
  	  end.
  
  
  get_addrs_by_family(Family, NumAddrs) ->
      case os:type() of
  
negative.code:     lists:flatten(io_lib:format(F, A)).
  
  do_open_and_connect(ServerAddresses, AddressToConnectTo) ->
      ?line Fun = fun (_, _, _, _, _, _) -> ok end,
      ?line do_open_and_connect(ServerAddresses, AddressToConnectTo, Fun).
  %%
  do_open_and_connect(ServerAddresses, AddressToConnectTo, Fun) ->
      ?line ServerFamily = get_family_by_addrs(ServerAddresses),
      ?line io:format("Serving ~p addresses: ~p~n",
  		    [ServerFamily, ServerAddresses]),
  