anchor.diff:      State#state{children = [Child |Children]}.
   
   save_dynamic_child(temporary, Pid, _, #state{dynamics = Dynamics} = State) ->
  -    State#state{dynamics = ?SETS:add_element(Pid, dynamics_db(temporary, Dynamics))};
  +    DynamicsDb = dynamics_db(temporary, Dynamics),
  +    State#state{dynamics = {set, ?SETS:add_element(Pid, DynamicsDb)}};
   save_dynamic_child(RestartType, Pid, Args, #state{dynamics = Dynamics} = State) ->
  -    State#state{dynamics = ?DICTS:store(Pid, Args, dynamics_db(RestartType, Dynamics))}.
  +    DynamicsDb = dynamics_db(RestartType, Dynamics),
  +    State#state{dynamics = {dict, ?DICTS:store(Pid, Args, DynamicsDb)}}.
   
   dynamics_db(temporary, undefined) ->
       ?SETS:new();
   dynamics_db(_, undefined) ->
       ?DICTS:new();
  -dynamics_db(_,Dynamics) ->
  -    Dynamics.
  -
  -dynamic_child_args(Pid, Dynamics) ->
  -    case ?SETS:is_set(Dynamics) of
  -        true ->
  -            {ok, undefined};
  -        false ->
  -            ?DICTS:find(Pid, Dynamics)
  -    end.
  +dynamics_db(_, {_Tag, DynamicsDb}) ->
  +    DynamicsDb.
  +
  +dynamic_child_args(_Pid, temporary, _DynamicsDb) ->
  +    {ok, undefined};
  +dynamic_child_args(Pid, _RT, {dict, DynamicsDb}) ->
  +    ?DICTS:find(Pid, DynamicsDb);
  +dynamic_child_args(_Pid, _RT, undefined) ->
  +    error.
   
   state_del_child(#child{pid = Pid, restart_type = temporary}, State) when ?is_simple(State) ->
       NDynamics = ?SETS:del_element(Pid, dynamics_db(temporary, State#state.dynamics)),
  -    State#state{dynamics = NDynamics};
  +    State#state{dynamics = {set, NDynamics}};
   state_del_child(#child{pid = Pid, restart_type = RType}, State) when ?is_simple(State) ->
       NDynamics = ?DICTS:erase(Pid, dynamics_db(RType, State#state.dynamics)),
  -    State#state{dynamics = NDynamics};
  +    State#state{dynamics = {dict, NDynamics}};
   state_del_child(Child, State) ->
       NChildren = del_child(Child#child.name, State#state.children),
       State#state{children = NChildren}.
  
positive.code: 
  get_child(Name, State) ->
      get_child(Name, State, false).
  get_child(Pid, State, AllowPid) when AllowPid, is_pid(Pid) ->
      get_dynamic_child(Pid, State);
  get_child(Name, State, _) ->
      lists:keysearch(Name, #child.name, State#state.children).
  
  get_dynamic_child(Pid, #state{children=[Child], dynamics=Dynamics}) ->
      DynamicsDb = dynamics_db(Child#child.restart_type, Dynamics),
      case is_dynamic_pid(Pid, DynamicsDb) of
  	true ->
  	    {value, Child#child{pid=Pid}};
  	false ->
  	    RPid = restarting(Pid),
  	    case is_dynamic_pid(RPid, DynamicsDb) of
  		true ->
  		    {value, Child#child{pid=RPid}};
  		false ->
  
negative.code:   when ?is_simple(State) ->
      RT = Child#child.restart_type,
      RPid = restarting(Pid),
      case dynamic_child_args(RPid, RT, State#state.dynamics) of
  	{ok, Args} ->
  	    {M, F, _} = Child#child.mfargs,
  	    NChild = Child#child{pid = RPid, mfargs = {M, F, Args}},
  