Po wprowadzeniu stanu wojennego został internowany, zwolniono go 23 grudnia 1982. W kwietniu 1983 tymczasowo aresztowany za kierowanie nielegalnymi obchodami 40. rocznicy powstania w getcie warszawskim, osadzony został w Areszcie Śledczym w Warszawie-Mokotowie. W lipcu tego samego roku zwolniony na mocy amnestii.

Od 1986 był rzecznikiem prasowym NSZZ „S” (najpierw tajnej TKK, następnie jawnej KKW). W 1989 uczestniczył w negocjacjach Okrągłego Stołu jako rzecznik prasowy opozycji.

Działalność publiczna w III RP Od 1989 do 1991 był członkiem Komitetu Wykonawczego Unii Międzyparlamentarnej. Wiosną 1990 został pierwszym cywilnym wiceministrem obrony narodowej, a w 1992 sekretarzem stanu w tym resorcie. W tym samym roku objął stanowisko ministra obrony narodowej, które zajmował do 1993. Pełniąc tę funkcję uczestniczył jednocześnie w pracach waszyngtońskiej Komisji Centrum Studiów Strategicznych i Międzynarodowych. Od 31 października 1997 do 16 czerwca 2000 ponownie stał na czele MON w rządzie Jerzego Buzka.