I would simply get the linked object at those points where you need to use it instead of storing it as a class member and hoping for the best. If the user deletes the object or clears the link, you will get a NULL for GetLink() when you do need to use it and thereby avoid the crashes by using the condition at that point. Also, you can use GetObjectLink() to avoid casting.