Nothing happens if I call cleanup() on a, lets say tiffDecoder? That's  basically all I wanted to make sure.
Good job on this one. Will have an extended test tomorrow to see if the tiny remaining leak mentioned https://github.com/python-imaging/Pillow/issues/205#issuecomment-17980960 is a worrisome issue and related to truncated jpegs at all.