anchor.diff:  	"-on_load(f/0).\n",
   	"f() -> ok.\n",
   	"c() -> 100.\n"]).
  +
  +%% Test -on_load while trace feature 'on_load' is enabled (OTP-14612)
  +on_load_trace_on_load(Config) ->
  +    Papa = self(),
  +    Tracer = spawn_link(fun F() -> receive M -> Papa ! M end, F() end),
  +    {tracer,[]} = erlang:trace_info(self(),tracer),
  +    erlang:trace(self(), true, [call, {tracer, Tracer}]),
  +    erlang:trace_pattern(on_load, true, []),
  +    on_load_update(Config),
  +    erlang:trace_pattern(on_load, false, []),
  +    erlang:trace(self(), false, [call]),
  +
  +    %% WE GET TRACES FOR CALLS TO UNDEFINED FUNCTIONS ???
  +    %% Remove filter when that is fixed.
  +    Ms = lists:filter(fun({trace,Papa,call,
  +                           {error_handler,undefined_function,
  +                            [on_load_update_code,_,_]}})
  +                         -> false;
  +                         (_) -> true
  +                      end,
  +                      flush()),
  +
  +    [{trace, Papa, call, {on_load_update_code, a, []}},
  +     {trace, Papa, call, {on_load_update_code, b, [99]}},
  +     {trace, Papa, call, {on_load_update_code, c, []}}] = Ms,
  +
  +    exit(Tracer, normal),
  +    ok.
  +
  +flush() ->
  +    receive M -> [M | flush()]
  +    after 100 -> []
  +    end.
  +
   
   on_load_purge(_Config) ->
       Mod = ?FUNCTION_NAME,
  
positive.code: 	    {undef,[{on_load_error,main,[],_}|_]} = Exit
      end.
  
  on_load_update(_Config) ->
      {Mod,Code1} = on_load_update_code(1),
      {module,Mod} = code:load_binary(Mod, "", Code1),
      42 = Mod:a(),
  
negative.code: 	 purge_stacktrace/1, mult_lib_roots/1, bad_erl_libs/1,
  	 code_archive/1, code_archive2/1, on_load/1, on_load_binary/1,
  	 on_load_embedded/1, on_load_errors/1, on_load_update/1,
           on_load_trace_on_load/1,
  	 on_load_purge/1, on_load_self_call/1, on_load_pending/1,
  	 on_load_deleted/1,
  	 big_boot_embedded/1,
  