Solubility data were combined with mass balances and growth kinetics to derive a temperature control algorithm which maintains a constant level of supersaturation. This constant supersaturation control (CSC) algorithm attempts to maximize the size of protein crystals by maintaining the growth conditions in the metastable zone. Using hen egg-white lysozyme as a model protein system, four temperature programming strategies were employed in seeded and unseeded systems: the CSC algorithm, a linear ramp derived from the CSC algorithm, isothermal 20 degrees C, and isothermal 4 degrees C. Both the CSC-derived linear and the CSC temperature programs yielded large, well-formed crystals which were significantly larger than crystals grown isothermally at 20 and 4 degrees C. The isothermal 4 degrees C program resulted in poorly formed crystals due to the high initial growth rates. The seeded systems displayed much higher levels of nucleation than the unseeded systems which is attributed to secondary nucleation. The results indicate that moderate deviations (similar to 20%) from constant supersaturation can be tolerated, while still producing large, well-formed crystals appropriate for X-ray crystallography.