in some rare conditions, we seem to need to check the pointer first before accessing it.