Process planning poses significant computational requirements due to the variety of alternative processes, their complexity, and their interactions. General-purpose planners are generally not considered a practical approach, and most current research focuses on special-purpose planning systems. Research within the PRODIGY framework aims to provide expressive general-purpose planners together with learning algorithms that can improve their efficiency, the accuracy of their domain model, and the quality of their plans. Process planning is one of the large-scale complex domains that we have implemented in PRODIGY to demonslrate the feasibility of our approach. Our current model of process planning is still far from comprehensive and is limited in many ways, but it reflects many of the complexities involved in the task. This paper describes how PRODIGY learns control knowledge, acquires domain knowledge, and improves the quality of its plans for this application domain using general-purpose planning and learning algorithms.