Od 1969 należał do Polskiej Zjednoczonej Partii Robotniczej. Od 1977 do 1978 i od 1979 był członkiem egzekutywy, od 1978 do 1979 II sekretarzem, a od marca 1981 I sekretarzem POP PZPR w Instytucie Profilaktyki Społecznej i Resocjalizacji UW. W kwietniu 1981 został także członkiem komitetu uczelnianego PZPR na UW. Z członkostwa w partii zrezygnował w grudniu 1981. Komitet Uczelniany PZPR przy Uniwersytecie Warszawskim formalnie nie przyjął jego rezygnacji, a 21 stycznia 1982 podjął decyzję o wydaleniu go z partii z uwagi na członkostwo w NSZZ „Solidarność”. W latach 80. był nadal związany z „Solidarnością”, uczestniczył w pracach Centrum Obywatelskich Inicjatyw Ustawodawczych Solidarności.

Członek Komitetu Helsińskiego w Polsce, objął stanowisko sekretarza zarządu Helsińskiej Fundacji Praw Człowieka, a także członka rady programowej Programu Spraw Precedensowych w tej fundacji. Działał jako ekspert ONZ, Rady Europy i OBWE. Specjalizuje się w dziedzinie kryminologii, prawie karnym i prawach człowieka. Jako ekspert sejmowy współpracował nad ustawą o Instytucie Pamięci Narodowej, doradzał później prezesowi IPN Leonowi Kieresowi (2001–2005) i koordynatorowi ds. służb specjalnych Januszowi Pałubickiemu (1997–2001).