I definatley agree, you should never be calling Destroy/Finalize directly. Calling the class' Free method is the correct way of freeing any object and this will call Destroy/Finalize internally at the right time.