A major issue in the design of cellular manufacturing systems is the allocation of machines and parts to cells. This determines the overall structure and performance of the system in terms of part now among cells. Several design and operational constraints such as an upper limit on the cell size, multiple units of the same machine, allocation of certain machines in the same or different cells and nonconsecutive visits of a part to the same machine during its processing, can be taken into account. The present work deals with the problem of simultaneously allocating parts and machines to cells in manufacturing systems where replicate machines and several design requirements exist. The part allocation section of the problem. which is trivial under the single machine type hypothesis, becomes quite complicated, but more realistic, when more than one unit of each machine type exist . The problem is first defined and formulated in a mathematical programming form. Subsequently, a heuristic algorithm based on a version of simulated annealing is used to produce enhanced system configurations.