You're wrong here, objects are passed by references yes, but those references are themselves local objects, and respect scope, assigning __Object__ to null inside of safeDestroy, set's the __Object__ reference to null, not the member reference inside of the class that called the function. I just did a test in flash calling safeDestroy on a member variable of a class, assigning it to null inside of safeDestroy, and the member variable wasn't null after the function returned. We have to null the references to the member variables within a class after you call safeDestroy.