1. In a computer system having a user interface, a memory and a database, a repository program operating in said computer system for accessing said database, said repository program executing a method for updating each object in a reference to latest version of said object, said method comprising the steps of: a. starting a database transaction; b. setting a boolean flag, updatedFlag to false; c. reserving said object and saving a new object as ghostObject; d. retrieving a collection of references for type of said object; e. retrieving objects in each reference found in step d hereof; f. finding latest version of each object retrieved in step e hereof on same variant and storing said retrieved object as latestVersion; g. finding previous version of latestVersion if updateType is lastChecked in and latestVersion is a ghostObject and assigning object found to latestVersion; h. performing the steps of this method for said latestVersion if depth update was specified; i. setting value of latestVersion to object returned in step h hereof if an object was returned; j. comparing latestVersion to object and updating ghotstObject with latestVersion and setting updatedFlag to true if they are not the same object; k. committing said database transaction if updatedFlag is true and returning ghostObject; and, l. aborting said database transaction if updatedFlag is false and return a null object.