Mandat poselski sprawował do 2005, z powodzeniem ubiegając się o reelekcję w wyborach w 1991, 1993, 1997 i 2001 z rekomendacji Sojuszu Lewicy Demokratycznej. W latach 1990–1991 był przewodniczącym Parlamentarnego Klubu Lewicy Demokratycznej. Nie wstąpił do utworzonej w 1990 SdRP, a w 1991 odmówił objęcia funkcji przewodniczącego klubu parlamentarnego SLD, uzasadniając tę decyzję sprzeciwem wobec objęcia mandatu poselskiego przez Leszka Millera, zamieszanego w sprawę tzw. pożyczki moskiewskiej. Od 1992 do 1996 był członkiem Zgromadzenia Parlamentarnego Rady Europy. W 1999 wstąpił do nowo powołanej partii, Sojuszu Lewicy Demokratycznej.

W rządzie Waldemara Pawlaka objął stanowiska wiceprezesa Rady Ministrów oraz ministra sprawiedliwości i prokuratora generalnego. Funkcje te pełnił od 26 października 1993 do 6 marca 1995. Był inicjatorem rządowych działań antykorupcyjnych; w wyniku kontroli w październiku 1994 ujawnił nazwiska osób, które pełniły funkcje rządowe i jednocześnie zasiadały w radach nadzorczych spółek prawa gospodarczego.

Po zmianie rządu w 1995 został wybrany na wicemarszałka Sejmu. Funkcję tę sprawował do 1996.