anchor.diff:      opt(O,{PI,Client,[{timer,{MSec, StopOpts}}|Traci]});
   opt([{timer, MSec}|O],{PI,Client,Traci}) ->
       opt(O,{PI,Client,[{timer,{MSec, []}}|Traci]});
  -opt([{overload_check, {MSec,M,F}}|O],{PI,Client,Traci}) ->
  -    opt(O,{PI,Client,[{overload_check,{MSec,M,F}}|Traci]});
  +opt([shell|O],{PI,Client,Traci}) ->
  +    opt(O,{PI,Client,[{shell, true}|Traci]});
   opt([],Opt) ->
  -    Opt.
  +    ensure_opt(Opt).
  +
  +ensure_opt({PI,Client,Traci}) ->
  +    case {proplists:get_value(shell, Traci), Client} of
  +        {undefined, _}        -> {PI, Client, Traci};
  +        {true, ?MODULE}       -> {PI, {local, ?MODULE}, Traci};
  +        {true, {local, File}} -> {PI, {local, File}, Traci};
  +        {true, _}             -> exit(local_client_required_on_shell_tracing)
  +    end.
   
   nods(all) ->
       Nodes1 = remove_active([node()|nodes()]),
  
positive.code: 	    ets:delete(?history_table),
  	    wait_for_fetch(AllNodes),
              Absname = filename:absname(Dir),
  	    case FetchOrFormat of
  		format -> format(Dir);
  		fetch -> ok
  
negative.code: stop_return(R,Opts) ->
      case {lists:member(return,Opts),R} of
          {true,_} ->
              R;
          {false,{stopped,_}} ->
              stopped;
  