The frequent use of past experience by human engineers when solving new problems has led to an interest in the use of case based reasoning (CBR) to help automate engineering design. In engineering design it often occurs that many past experiences must be combined to solve a new problem, and thus the process of case based adaptation must efficiently and systematically combine information from many sources. We have developed a constraint based methodology for case combination that allows its application across a wide range of problems. We have shown that our approach provides an efficient adaptation methodology that ensures convergence upon a solution if one exists, provides a uniform representation of cases, and is generalizable beyond just one domain. Our technique is implemented in a case based reasoning system called COMPOSER, which has been tested in two design domains: assembly sequence design and configuration design.