Kerosene works great over time depending on how bad it is.
Ultrasonic cleaners if you have acess to one big enough are also good.
For pistol sized parts we have an old pressure cooker that is filled with kerosene and has an air valve on top. Put the part inside and then pressurize to 12psi. Seems to help drive the solvent into the nooks and crannies. Here in az if you leave it in the sun a few days you get the heat helping as well