DestroySelf() call is not immediate. It's going to be delayed. That said, TNManager.Instantiate is also delayed, and executing one after the other should still happen in the same order. Is there anything special about the object you're destroying? Is it a properly instantiated object that exists in the channel that you're still in?