anchor.diff:  	    down(Tab, Storage)
       end.
   
  -table_init_fun(SenderPid) ->
  +table_init_fun(SenderPid, Storage) ->
       fun(read) ->
   	    Receiver = self(),
   	    SenderPid ! {Receiver, more},
  -	    get_data(SenderPid, Receiver)
  +	    get_data(SenderPid, Receiver, Storage);
  +       (close) ->
  +	    ok
       end.
   
   %% Add_table_copy get's it's own locks.
   start_receiver(Tab,Storage,Cs,SenderPid,TabSize,DetsData,{dumper,{add_table_copy,_}}) ->
  -    Init = table_init_fun(SenderPid),
  +    Init = table_init_fun(SenderPid, Storage),
       case do_init_table(Tab,Storage,Cs,SenderPid,TabSize,DetsData,self(), Init) of
   	Err = {error, _} ->
   	    SenderPid ! {copier_done, node()},
  
positive.code: db_erase({disc_copies, Tab}, Key) ->
      true = ?ets_delete(Tab, Key);
  db_erase({disc_only_copies, Tab}, Key) ->
      ok = dets:delete(Tab, Key).
  
  db_match_erase({ram_copies, Tab} , Pat) ->
      true = ?ets_match_delete(Tab, Pat);
  db_match_erase({disc_copies, Tab} , Pat) ->
      true = ?ets_match_delete(Tab, Pat);
  db_match_erase({disc_only_copies, Tab}, Pat) ->
      ok = dets:match_delete(Tab, Pat).
  
  db_put({ram_copies, Tab}, Val) ->
      true = ?ets_insert(Tab, Val);
  db_put({disc_copies, Tab}, Val) ->
      true = ?ets_insert(Tab, Val);
  db_put({disc_only_copies, Tab}, Val) ->
      ok = dets:insert(Tab, Val).
  
  %% This code executes at the remote site where the data is
  %% executes in a special copier process.
  
negative.code: 		    {Storage, Tab};
  		Else ->
  		    Else
  	    end;
          element(1, Storage) == ext ->
              {_, Alias, Mod} = Storage,
              case mnesia_monitor:unsafe_create_external(Tab, Alias, Mod, Cs) of
                  ok ->
                      {Storage, Tab};
                  Else ->
                      Else
              end
      end.
  
  tab_receiver(Node, Tab, Storage, Cs, OrigTabRec) ->
  