Systems and methods for obtaining and maintaining operable and updated
versions of software on a client, which may be a set-top box or a
personal computer. A server automatically downloads software updates over
a satellite link to a client after such upgrades become available at the
server without requiring interaction with a user. Similarly, corrupted
software is automatically replaced by the client first automatically
detecting if a corrupted state exists in local software or data using a
checksum technique. If such corruption is found, the client automatically
connects over the Internet to a server that contains a replacement for
the corrupted program or data. The client then automatically receives a
download of the program or data from the server.