W drugiej połowie lat 70. związał się z opozycją demokratyczną, był współpracownikiem Komitetu Obrony Robotników i następnie KSS KOR. Pełnił funkcję redaktora naczelnego „Biuletynu Dolnośląskiego”. Wiosną 1980 został członkiem Towarzystwa Kursów Naukowych, a następnie także jego rady programowej. W 1980 wstąpił do „Solidarności”, był członkiem prezydium zarządu Regionu Dolny Śląsk i Komisji Krajowej związku. 8 października 1981 na pierwszym posiedzeniu Komisji Krajowej został wybrany do Prezydium KK. Na początku stanu wojennego brał udział w strajku w Stoczni Gdańskiej. 16 grudnia 1981 został aresztowany. Objęty postępowaniem karnym, w maju 1982 uniewinniony przez Sąd Wojewódzki w Gdańsku. W latach 1983–1989 działał w niezależnej Radzie Edukacji Narodowej.
Początkowo deklarował się jako przeciwnik Okrągłego Stołu, dołączył jednak do Komitetu Obywatelskiego przy Lechu Wałęsie. Należał do Kongresu Liberalno-Demokratycznego, Ruchu Stu i RS AWS. W latach 1995–1998 zajmował stanowisko zastępcy dyrektora Biura Rozwoju Wrocławia. Z ramienia AWS sprawował mandat radnego Sejmiku Województwa Dolnośląskiego. 1 stycznia 1999 rozpoczął urzędowanie na stanowisku marszałka województwa dolnośląskiego, pierwszego po utworzeniu tej funkcji. Pełnił ją do 2001.