This paper addresses the problem of assigning n independently developed versions of a program to n different computers to maximize system reliability. For any assignment, a component of the system is defined to be a version-computer pairing and a fault-tolerant system will consist of n such components. If system reliability is defined to be the probability of at least k working components, 1•k•n, then the problem becomes an assignment problem for a k-out-of-n:G system. The optimal assignment can be obtained analytically and is shown to be invariant for any integer k. Some variations of the basic model are also described.