anchor.diff:      run_handshake(Peer).
   
   full_handshake(Peer,Bindir) ->
  +    log:info(self(), "full handshake to: ~p", [Peer]),
  +    port(Bindir),
  +    timer:sleep(500),
  +    case run_handshake(Peer) of
  +        {ok,From}         -> From;
  +        {error,no_answer} -> Peer
  +    end.
  +
  +port(Bindir) ->
       Args = "-peer " ++ atom_to_list(node())
           ++ " -sname " ++ ?PEERSTR
           ++ " -cookie " ++ atom_to_list(erlang:get_cookie()),
       Cmd  = Bindir ++ "/" ++ ?JNODEBIN ++ " " ++ Args ++ " &",
       log:info(self(), "open port to org.ister.ej.Node: ~p", [Cmd]),
  -    erlang:open_port({spawn, Cmd},[]),
  -    timer:sleep(500),
  -    log:info(self(), "full handshake to: ~p", [Peer]),
  -    case run_handshake(Peer) of
  -        {ok,From}         -> From;
  -        {error,no_answer} -> Peer
  -    end.
  -    
  +    Port = erlang:open_port({spawn, Cmd},[]),
  +    log:info(self(), "port: ~p", [Port]).
   
   run_handshake(Peer) ->
  -    Ref = ?EJMSGREF(self(),erlang:make_ref()),
  -    send_peer(Peer, Ref, ?TAG_NODE, [?EJMSGPART(call,handshake)]),
  +    send_peer(Peer, Ref=get_ref(), ?TAG_NODE, [?EJMSGPART(call,handshake)]),
       receive
           {From,Ref,{?TAG_OK,[?EJMSGPART(call,handshake)]}} -> 
               log:info(self(), "got handshake from: ~p", [From]),
  +            erlang:link(From),
               {ok,From}
       after
           ?BLOCKING_TIMEOUT -> 
  
positive.code:               ,stopping = false
                }).
  
  start() ->
      start(?DEFAULT_N).
  
  
negative.code:                     true                      -> S#jsrv.bindir
                  end,
              Peer = handshake(Bindir),
              S2 = S#jsrv{peer=Peer},
              Workers =
              lists:foldl(fun(_I,Acc) -> 
  