Urodził się 27 sierpnia 1947 r. w Brusach.
W 1971 r. ukończył studia w dziedzinie automatyki przemysłowej na Wydziale Elektrycznym Politechniki Gdańskiej, a w 1979 r. – studia podyplomowe w zakresie mikrokomputerowego sterowania obiektami przemysłowymi na Politechnice Warszawskiej.
W latach 1971–1992 pracował w Resortowym Ośrodku Badawczo-Rozwojowym Automatyki „Chemoautomatyka” przy Zakładach Włókien Chemicznych „Elana” w Toruniu. W okresie 2001–2003 pełnił funkcję negocjatora w firmie „Karstans Spółka z o.o. – Konsultanci Ekonomiczni”. W latach 2001–2005 był stałym ekspertem sejmowej Komisji Skarbu Państwa. W latach siedemdziesiątych, jako działacz Klubu Inteligencji Katolickiej w Toruniu, zaangażował się w działalność opozycji demokratycznej. Od 1980 do 1991 r. należał do NSZZ „Solidarność”. W latach 1980–1981 był członkiem Toruńskiego Komitetu Obrony Więzionych za Przekonania. W stanie wojennym internowano go w Potulicach i Strzebielinku.
Od 1981 r. jest członkiem Zrzeszenia Kaszubsko-Pomorskiego (obecnie zasiada w zarządzie jego oddziału w Toruniu), a od 1990 r. – Fundacji „Archiwum i Muzeum Pomorskie Armii Krajowej oraz Wojskowej Służby Kobiet” (od 1999 r. przewodniczy radzie tej fundacji). Jest również wiceprzewodniczącym Społecznego Komitetu „Solidarni – Toruń pamięta” i członkiem Stowarzyszenia Wolnego Słowa oraz Stowarzyszenia „Obywatelski Klub Parlamentarny”.
W Sejmie X, I i II kadencji był członkiem Komisji Mniejszości Narodowych i Etnicznych. W Sejmie X kadencji pracował także w Komisji Samorządu Terytorialnego. W Sejmie I kadencji był członkiem Komisji Przekształceń Własnościowych, a w II kadencji – zastępcą przewodniczącego tej komisji. W Sejmie III kadencji był zastępcą przewodniczącego Komisji Rolnictwa i Rozwoju Wsi, a w V kadencji – zastępcą przewodniczącego Komisji Skarbu Państwa oraz członkiem Komisji Rolnictwa i Rozwoju Wsi. W Senacie VII kadencji przewodniczył Komisji Gospodarki Narodowej, był członkiem Komisji Praw Człowieka, Praworządności i Petycji oraz Komisji Spraw Unii Europejskiej.