Method and system for reporting program failures. The system extracts
information about a failure in a program module, such as the location of
the failure, and establishes communication with a repository, such as a
server. The information about the failure may be used to search the
repository to determine whether the particular bug that caused the failure
has already been fixed. If so, then the system assists the user in
downloading the fix (such as by pointing the user to a particular website
for downloading a service release). If a particular failure has not been
diagnosed and corrected, then additional relevant information from the
user's computer may be uploaded to the repository to provide the
developers of the program module enough information about the failure to
diagnose the bug and fix it (in a service release or in a later version of
the program module).