CountedReference.obj should be volatile too, to make sure that use-after-dispose gets caught