W latach 1994–1997 był przewodniczącym Rady Fundacji dla Uniwersytetu Jagiellońskiego. W latach 1992–1997 był ekspertem Rady Europy, a w 1994 ekspertem rządu Republiki Łotewskiej. W latach 1987–1995 był członkiem Komisji ds. Reformy Prawa Karnego. W latach 1995–2004 był sekretarzem generalnym polskiej grupy Association Internationale de Droit Pénal, a w latach 1999–2003 przewodniczącym Association internationale des sciences juridiques.

Uczestniczył w pracach nad kodyfikacjami karnymi z 1997, był inicjatorem wprowadzenia do polskiej procedury karnej instytucji świadka anonimowego i świadka koronnego. W latach 2000–2002 był członkiem Rady Legislacyjnej działającej przy prezesie Rady Ministrów. Od 2004 przewodniczył Komisji Kodyfikacyjnej Prawa Karnego, lecz 30 stycznia 2006 ostatecznie został odwołany ze stanowiska przewodniczącego i członka Komisji Kodyfikacyjnej Prawa Karnego przez prezesa Rady Ministrów na wniosek ministra sprawiedliwości Zbigniewa Ziobry. Ponownie powołany na członka komisji kolejnej kadencji w 2009 i podobnie jak cała komisja został odwołany 11 stycznia 2016.