Z ramienia Konferencji Episkopatu Polski zasiadał w Radzie Społeczno-Gospodarczej przy Sejmie PRL. Był ekspertem Niezależnego Samorządnego Związku Zawodowego „Solidarność”, członkiem Komitetu Helsińskiego w Polsce, uczestniczył w obradach Okrągłego Stołu. Brał udział w pracach Centrum Obywatelskich Inicjatyw Ustawodawczych Solidarności. W okresie od 1989 do 1991 zasiadał w Senacie I kadencji z ramienia Komitetu Obywatelskiego. W 1990 został członkiem Ruchu Obywatelskiego Akcja Demokratyczna, następnie wstąpił do Klubu Parlamentarnego Unii Demokratycznej.

W latach 1992–1996 pełnił funkcję rzecznika praw obywatelskich, pokonując w głosowaniu Zbigniewa Romaszewskiego. W 1995 był kandydatem Unii Pracy w wyborach prezydenckich. Przegrał w pierwszej turze, uzyskując 631 432 głosy (3,53%) i zajmując 6. miejsce.

Po śmierci Andrzeja Bączkowskiego od stycznia do października 1997 pełnił funkcję ministra pracy i polityki socjalnej w rządzie Koalicji SLD-PSL. Od 2001 przewodniczył resortowej komisji do spraw kodyfikacji Kodeksu pracy, a od 2002 Komisji Kodyfikacyjnej Prawa Pracy.

W latach 1999–2003 publikował felietony w „Przeglądzie Tygodniowym”, następnie w „Przeglądzie”.