Ripple Effect Analysis (REA) is an iterative process used to ensure consistency and integrity after changes are made to software. Many techniques, including program slicing, have been proposed to be used in this process with varying degrees of success. This paper shows how program slicing can be used in the REA process. Specifically this paper demonstrates the need of both forward and backward slicing in REA under different kinds of program changes. It also discusses the limitations of traditional program slicing techniques and shows how they can be overcome by employing a generalized program slicing technique. This paper also defines operations on program slices and show their usage in REA. A prototype supporting REA on COBOL programs has been implemented and data obtained by experimenting the tool on industrial COBOL code are presented. The data show the size of typical program slices and the importance of focusing on direct ripples in the REA process.