anchor.diff:                     get()]),
       case net_adm:ping(N) of
           pong ->
  -            ?PRINT2("tc_try -> ~p still running~n", [N]),
  -            Runner = spawn(N, ?MODULE, tc_wait, [self(), get(), M, F, A]),
  -            MRef   = erlang:monitor(process, Runner),
  -            await_tc_runner_started(Runner, MRef),
  -            await_tc_runner_done(Runner, MRef);
  +            ?PRINT2("tc_try -> ~p still running - start runner~n", [N]),
  +            OldFlag = trap_exit(true), % Make sure we catch it
  +            Runner  = spawn_link(N, ?MODULE, tc_wait, [self(), get(), M, F, A]),
  +            await_tc_runner_started(Runner, OldFlag),
  +            await_tc_runner_done(Runner, OldFlag);
           pang ->
               ?EPRINT2("tc_try -> ~p *not* running~n", [N]),
               exit({node_not_running, N})
       end.
   
  -await_tc_runner_started(Runner, MRef) ->
  +await_tc_runner_started(Runner, OldFlag) ->
  +    ?PRINT2("await tc-runner (~p) start ack~n", [Runner]),
       receive
  -        {'DOWN', MRef, process, Runner, Reason} ->
  +        {'EXIT', Runner, Reason} ->
               ?EPRINT2("TC runner start failed: "
                        "~n   ~p~n", [Reason]),
               exit({tx_runner_start_failed, Reason});
  
positive.code: %% In some cases we make a rpc call back to the agent node directly
  %% and call something in the agent... (for example the info_test
  %% test case).
  tc_try(N, M, F, A) ->
      ?PRINT2("tc_try -> entry with"
              "~n      N:     ~p"
  
negative.code:             exit({tc_runner_start, timeout, RunnerInfo})
      end.
  
  await_tc_runner_done(Runner, OldFlag) ->
      receive
          {'EXIT', Runner, Reason} ->
              ?EPRINT2("TC runner failed: "
                       "~n   ~p~n", [Reason]),
              exit({tx_runner_failed, Reason});
  