Był sędzią, adwokatem, doradcą "Solidarności", w okresie stanu wojennego obrońcą w procesach politycznych. Do Sejmu I kadencji wszedł z listy Wyborczej Akcji Katolickiej. W 1992 r. został członkiem ZChN. Pełnił funkcję wicemarszałka Sejmu III kadencji. W latach 2000-2002 był prezesem ZChN. Od marca 2002 r. jest szefem Rady Naczelnej zjednoczenia.
W wyborach parlamentarnych w 2007 po raz czwarty uzyskał mandat posła na sejm VI kadencji. 22 czerwca 2008 jako kandydat PiS wygrał wybory uzupełniające do Senatu, rozpisane w okręgu krośnieńskim po śmierci Andrzeja Mazurkiewicza, uzyskując 47,92% głosów. Ślubowanie złożył 25 czerwca 2008.
Zginął pod Smoleńskiem w katastrofie Tu 134 lecącego na uroczystości 70. rocznicy mordu katyńskiego.