grudniu 1990 został wybrany na prezydenta).
Od 1991 do 2001 sprawował mandat posła I, II i III kadencji. Do Sejmu I kadencji wszedł z ramienia NSZZ „Solidarność”. Pełnił funkcje przewodniczącego klubu parlamentarnego oraz przewodniczącego Komisji Nadzwyczajnej do zbadania skutków stanu wojennego. Opowiadał się za współpracą z Unią Demokratyczną (m.in. przy tworzeniu rządu Hanny Suchockiej). W maju 1993 był przeciwnikiem głosowania za wotum nieufności dla tego gabinetu. Po rozwiązaniu Sejmu przez prezydenta odszedł ze związku, a w wyborach parlamentarnych w tym samym roku wystartował z listy Unii Demokratycznej. W II kadencji Sejmu był m.in. przewodniczącym Komisji ds. Służb Specjalnych. W 1994 został członkiem Unii Wolności.
W rządzie Jerzego Buzka pełnił funkcję sekretarza stanu w Ministerstwie Spraw Wewnętrznych i Administracji. Podał się do dymisji w 2000 po wyjściu Unii Wolności z koalicji rządowej. W wyborach parlamentarnych w 2001 nie uzyskał mandatu.
Od października 2001 do października 2005 był członkiem zarządu województwa pomorskiego (od grudnia 2002 do marca 2004 w randze wicemarszałka). W 2002 bez powodzenia startował w wyborach samorządowych na urząd prezydenta Gdańska (zdobył 16,32% głosów).