anchor.diff:  	       erlang:trace(P, true, TraceFlags),
   	       erlang:trace_pattern(MFA, Pat, PatFlags),
   	       lists:map(
  -		 fun(X) -> 
  -			 list_to_tuple([trace, P | tuple_to_list(X)])
  +		 fun(X) when is_function(X,1) -> X;
  +		    (X) -> list_to_tuple([trace, P | tuple_to_list(X)])
   		 end,
   		 Expected0)
          end).
   
   tr(RunFun, ControlFun) ->
  -    P = spawn(?MODULE, runner, [self(), RunFun]),
  +    P = spawn_link(?MODULE, runner, [self(), RunFun]),
       collect(P, ControlFun(P)).
   
   collect(P, TMs) ->
  
positive.code: 	     [{['$1','$1'],[{is_atom, '$1'}],[kakalorum]}],
  	     [{call, {?MODULE, f2, [a, a]}}]),
  
  %    case tr0(fun() -> ?MODULE:f2(a, a) end,
  %	     {?MODULE, f2, 2},
  %	     [{['$1','$1'],[{is_atom, '$1'}],[{message, {process_dump}}]}]) of
  %	[{trace, _, call, {?MODULE, f2, [a, a]}, Bin}] ->
  %	    erlang:display(binary_to_list(Bin))
  %    end,
  
  % Error cases
      ?line errchk([{['$1','$1'],[{is_atom, '$1'}],[{banka, kanin}]}]),
  
negative.code: collect([TM | TMs]) ->
      ?t:format(        "Expecting:      ~p~n", [TM]),
      receive
  	M0 ->
  	    M = case element(1, M0) of
  		    trace_ts ->
  			list_to_tuple(lists:reverse(
  					tl(lists:reverse(tuple_to_list(M0)))));
  		    _ -> M0
  		end,
  	    case is_function(TM,1) of
  		true ->
  		    case (catch TM(M)) of
  			true ->
  			    ?t:format("Got:            ~p~n", [M]),
  			    collect(TMs);
  			_ ->
  			    ?t:format("Got unexpected: ~p~n", [M]),
  			    flush({got_unexpected,M})
  		    end;
  
  		false ->
  		    case M of
  			TM ->
  			    ?t:format("Got:            ~p~n", [M]),
  			    collect(TMs);
  			_ ->
  			    ?t:format("Got unexpected: ~p~n", [M]),
  			    flush({got_unexpected,M})
  		    end
  	    end
      end.
  
  