diff --git a/fpdfsdk/cpdfsdk_annothandlermgr.cpp b/fpdfsdk/cpdfsdk_annothandlermgr.cpp
index 3dc3f09..ac22fe2 100644
--- a/fpdfsdk/cpdfsdk_annothandlermgr.cpp
+++ b/fpdfsdk/cpdfsdk_annothandlermgr.cpp
@@ -130,7 +130,7 @@
     CPDFSDK_Annot::ObservedPtr* pAnnot,
     uint32_t nFlags,
     const CFX_PointF& point) {
-  ASSERT(*pAnnot);
+  ASSERT(pAnnot->HasObservable());
   return GetAnnotHandler(pAnnot->Get())
       ->OnLButtonDown(pPageView, pAnnot, nFlags, point);
 }
@@ -140,7 +140,7 @@
     CPDFSDK_Annot::ObservedPtr* pAnnot,
     uint32_t nFlags,
     const CFX_PointF& point) {
-  ASSERT(*pAnnot);
+  ASSERT(pAnnot->HasObservable());
   return GetAnnotHandler(pAnnot->Get())
       ->OnLButtonUp(pPageView, pAnnot, nFlags, point);
 }
@@ -150,7 +150,7 @@
     CPDFSDK_Annot::ObservedPtr* pAnnot,
     uint32_t nFlags,
     const CFX_PointF& point) {
-  ASSERT(*pAnnot);
+  ASSERT(pAnnot->HasObservable());
   return GetAnnotHandler(pAnnot->Get())
       ->OnMouseMove(pPageView, pAnnot, nFlags, point);
 }
@@ -161,7 +161,7 @@
     uint32_t nFlags,
     short zDelta,
     const CFX_PointF& point) {
-  ASSERT(*pAnnot);
+  ASSERT(pAnnot->HasObservable());
   return GetAnnotHandler(pAnnot->Get())
       ->OnMouseWheel(pPageView, pAnnot, nFlags, zDelta, point);
 }
@@ -171,7 +171,7 @@
     CPDFSDK_Annot::ObservedPtr* pAnnot,
     uint32_t nFlags,
     const CFX_PointF& point) {
-  ASSERT(*pAnnot);
+  ASSERT(pAnnot->HasObservable());
   return GetAnnotHandler(pAnnot->Get())
       ->OnRButtonDown(pPageView, pAnnot, nFlags, point);
 }
@@ -181,7 +181,7 @@
     CPDFSDK_Annot::ObservedPtr* pAnnot,
     uint32_t nFlags,
     const CFX_PointF& point) {
-  ASSERT(*pAnnot);
+  ASSERT(pAnnot->HasObservable());
   return GetAnnotHandler(pAnnot->Get())
       ->OnRButtonUp(pPageView, pAnnot, nFlags, point);
 }
@@ -190,7 +190,7 @@
     CPDFSDK_PageView* pPageView,
     CPDFSDK_Annot::ObservedPtr* pAnnot,
     uint32_t nFlag) {
-  ASSERT(*pAnnot);
+  ASSERT(pAnnot->HasObservable());
   GetAnnotHandler(pAnnot->Get())->OnMouseEnter(pPageView, pAnnot, nFlag);
 }
 
@@ -198,7 +198,7 @@
     CPDFSDK_PageView* pPageView,
     CPDFSDK_Annot::ObservedPtr* pAnnot,
     uint32_t nFlag) {
-  ASSERT(*pAnnot);
+  ASSERT(pAnnot->HasObservable());
   GetAnnotHandler(pAnnot->Get())->OnMouseExit(pPageView, pAnnot, nFlag);
 }
 
@@ -233,14 +233,14 @@
 bool CPDFSDK_AnnotHandlerMgr::Annot_OnSetFocus(
     CPDFSDK_Annot::ObservedPtr* pAnnot,
     uint32_t nFlag) {
-  ASSERT(*pAnnot);
+  ASSERT(pAnnot->HasObservable());
   return GetAnnotHandler(pAnnot->Get())->OnSetFocus(pAnnot, nFlag);
 }
 
 bool CPDFSDK_AnnotHandlerMgr::Annot_OnKillFocus(
     CPDFSDK_Annot::ObservedPtr* pAnnot,
     uint32_t nFlag) {
-  ASSERT(*pAnnot);
+  ASSERT(pAnnot->HasObservable());
   return GetAnnotHandler(pAnnot->Get())->OnKillFocus(pAnnot, nFlag);
 }
 
