anchor.diff:                                require_flags=ReqFlgs},
       check_dflags(HSData1, EDF),
       ?debug({"MD5 connection from ~p~n", [NodeOrHost]}),
  -    HSData2 = mark_pending(HSData1),
  +    {AcceptedPending, HSData2} = mark_pending(HSData1),
       Node = HSData2#hs_data.other_node,
       {MyCookie,HisCookie} = get_cookies(Node),
       ChallengeA = gen_challenge(),
  
positive.code: 	    %% FIXME: is this a case ?
  	    ?debug({dist_util,self(),mark_pending,already_pending,Node}),
  	    ?shutdown(Node)
      end.
  
  
  %%
  %% Marking pending and negotiating away 
  %% simultaneous connection problems
  %%
  
  wait_pending(#hs_data{kernel_pid=Kernel,
  		      other_node=Node}) ->
      Kernel ! {self(), {wait_pending, Node}},
  
negative.code:     HSData4 = HSData3#hs_data{this_flags = ChosenFlags,
                                other_flags = ChosenFlags},
      ChallengeB = recv_challenge_reply(HSData4, ChallengeA, MyCookie),
      case AcceptedPending of
          up_pending -> wait_pending(HSData4);
          _ -> continue
      end,
      send_challenge_ack(HSData4, gen_digest(ChallengeB, HisCookie)),
      ?debug({dist_util, self(), accept_connection, Node}),
      connection(HSData4);
  