Insure cleanup() is only called once