Z wykształcenia jest mechanikiem samochodowym. Od 1980 r. związany jest z "Solidarnością". W czasie stanu wojennego był internowany. Przed wyborami w 1997 r. był wiceprzewodniczącym związku. Współtworzył AWS, odpowiadał za finanse podczas kampanii parlamentarnej. W rządzie Jerzego Buzka pełnił funkcję wicepremiera, ministra spraw wewnętrznych i administracji. W styczniu 1999 r. został sekretarzem generalnym RS AWS. Po tym jak został postawiony przed sądem lustracyjnym pod zarzutem złożenia nieprawdziwego oświadczenia lustracyjnego, stracił stanowiska w rządzie i AWS.W 2001 r. wystąpił z AWS i stanął na czele Forum Obywatelskiego. Po ostatnich wyborach parlamentarnych został doradcą rektora łódzkiej ASP ds. promocji