The synthesis problem of optimal heat exchanger networks using multiple utilities is addressed. A mixed integer nonlinear programming (MINLP) model is developed based on a stagewise superstructure that contains all possible matches between hot and cold streams in every stage. Unlike previous MINLP formulations, exchanges of process streams with utilities are allowed in each stage of the superstructure to determine the optimal location of hot and cold utilities. The optimal choice of different types of available utilities is considered through a disjunctive programming formulation. The model can handle forbidden matches and required and restricted matches as well as isothermal and nonisothermal process streams. The MINLP problem is readily solved using commercial local solvers. Four examples are presented to show the application of the proposed methodology. No computation complications were observed in the examples presented, and they required small CPU times.