W latach 1989–2001 sprawował mandat posła na Sejm X, I, II i III kadencji, kolejno z ramienia Komitetu Obywatelskiego, Unii Demokratycznej i Unii Wolności. W 2001 nie uzyskał ponownie mandatu (UW nie osiągnęła progu wyborczego).

W latach 1991–1999 był przewodniczącym UD i UW w Toruniu. Objął też stanowisko przewodniczącego rady Fundacji Archiwum i Muzeum Pomorskie Armii Krajowej oraz Wojskowej Służby Kobiet. Od 2002 do 2005 był stałym ekspertem sejmowej Komisji Skarbu Państwa.

W 2002 wstąpił do Platformy Obywatelskiej i z ramienia komitetu Obywatele Torunia startował na urząd prezydenta miasta Torunia. Zajął drugie miejsce z wynikiem 49% poparcia, przegrywając w drugiej turze z Michałem Zaleskim. W wyniku wyborów parlamentarnych w 2005, z listy PO, ponownie został wybrany na posła z okręgu toruńskiego. W styczniu 2006 objął funkcję rzecznika w gabinecie cieni PO odpowiedzialnego za skarb państwa. Był przewodniczącym PO w Toruniu.

Objął funkcję prezesa oddziału Zrzeszenia Kaszubsko-Pomorskiego w Toruniu, w latach 1994–1998 był prezesem zarządu głównego ZKP w Gdańsku.