anchor.diff:              {reply, ok, State1}
       end;
   
  -handle_call({ensure_table, TableName, Opts}, _From, State) ->
  +handle_call({ensure_table, TableName, Opts}, From, State) ->
       try mnesia:table_info(TableName, disc_copies) of
           Nodes when is_list(Nodes) ->
               case lists:member(node(), Nodes) of
  
positive.code: 
  %% @private
  %% @doc Exit if Fun hasn't returned within the specified timeout.
  do_async(Fun, Client, Timeout) ->
      spawn(
        fun () ->
                {ok, TRef} = timer:kill_after(Timeout),
                Reply = Fun(),
                timer:cancel(TRef),
                gen_server:reply(Client, Reply)
        end).
  
  
  %% @doc Make sure we have a disk copy of the schema and all disc tables.
  
negative.code:                 false ->
                      ?log_info("Creating local copy of ~p",
                                [TableName]),
                      do_with_timeout(
                        fun () ->
                                {atomic, ok} =
                                    mnesia:add_table_copy(TableName, node(),
                                                          disc_copies)
                        end, From, 5000),
                      {noreply, State}
              end
      catch exit:{aborted, {no_exists, _, _}} ->
              ?log_info("Creating table ~p", [TableName]),
              do_with_timeout(
                fun () ->
                        {atomic, ok} =
                            mnesia:create_table(
                              TableName, Opts ++ [{disc_copies, [node()]}])
                end, From, 5000),
              {noreply, State}
      end;
  
  handle_call({maybe_rename, NewAddr}, _From, State) ->
  