I wonder if all this invalid cast checking should be converted to Degub.Assert() or wrapped in #if DEBUG. Seems this might detriment performance to some small (but unkown) degree.