anchor.diff:  				      file     = File, 
   				      checksum = Checksum}}
   		    end;
  +		{error, enoent} ->
  +		    %% No such file - create it
  +		    ?vdebug("open ~p database ~p - "
  +			    "file does *not* exist - create", 
  +			    [Type, Name]),
  +		    ID = ets:new(Name, [Type, protected, {keypos, 2}]),
  +		    write_ets_file(ID, File, Checksum), 
  +		    {ok, #tab{id       = ID, 
  +			      rec_name = RecName, 
  +			      file     = File, 
  +			      checksum = Checksum}};
   		{error, Reason} when (Action =:= keep) ->
  +		    ?vinfo("open ~p database ~p - "
  +			   "failed reading file info (keep)", 
  +			   [Type, Name, Reason]),
   		    {error, {read_file_info, Reason}};
   		{error, Reason} ->
  +		    ?vlog("open ~p database ~p - "
  +			  "failed reading file info (clear)", 
  +			  [Type, Name, Reason]),
   		    user_err("Warning: could not read file info - "
   			     "create new: "
   			     "~n   File:   ~p"
  
positive.code: 	{value, {dir, Dir}} ->
  	    Action   = snmp_misc:get_option(action,   Opts, keep),
  	    Checksum = snmp_misc:get_option(checksum, Opts, false),
  	    ?vtrace("open ~p database ~p", [Type, Name]),
  	    File = filename:join(Dir, atom_to_list(Name) ++ ".db"),
  	    case file:read_file_info(File) of
  		{ok, _} ->
  		    case ets:file2tab(File, [{verify, Checksum}]) of
  			{ok, ID} ->
  			    {ok, #tab{id       = ID, 
  				      rec_name = RecName, 
  				      file     = File, 
  				      checksum = Checksum}};
  			{error, Reason} when (Action =:= keep) ->
  			    {error, {file2tab, Reason}};
  			{error, Reason} ->
  			    user_err("Warning: could not read file - "
  				     "create new (empty): "
  				     "~n   File:   ~p"
  
negative.code: 			      checksum = Checksum}}
  	    end;
  	false ->
  	    ?vdebug("open ~p database ~p - ok", [Type, Name]),
  	    ID = ets:new(Name, [Type, protected, {keypos, 2}]),
  	    {ok, #tab{id = ID, rec_name = RecName}}
      end.
  