W 1981 na I Krajowym Zjeździe Delegatów NSZZ „S” przewodniczył Komisji Programowej, stając się głównym autorem programu Samorządna Rzeczpospolita.
Po wprowadzeniu stanu wojennego został internowany, zwolnienie uzyskał w grudniu 1982. Pełnił następnie funkcję doradcy zdelegalizowanej „Solidarności”, blisko współpracował z Lechem Wałęsą. 17 maja 1983 został aresztowany pod zarzutem organizowania nielegalnych zebrań, w lipcu tego samego roku zwolniony na mocy amnestii. 10 października 1986 sygnatariusz apelu do władz USA o zniesienie sankcji gospodarczych wobec Polski.
III RP Brał udział w rozmowach plenarnych w czasie obrad tzw. Okrągłego Stołu z władzami PRL w 1989, które doprowadziły do wyborów parlamentarnych w Polsce i powstania tzw. Sejmu kontraktowego. W wyborach tych po raz pierwszy zdobył mandat poselski, później był wybierany posłem na Sejm w 1991, 1993 i 1997. W Sejmie kontraktowym przez część kadencji kierował Obywatelskim Klubem Parlamentarnym.
Należał do założycieli Ruchu Obywatelskiego Akcja Demokratyczna, Unii Demokratycznej i Unii Wolności. Był przewodniczącym klubu parlamentarnego UD i UW w okresie 1990–1997. Od 2000 do 2001 pełnił funkcję przewodniczącego Unii Wolności. Od 2005 do śmierci należał do Partii Demokratycznej – demokraci.pl.