diff --git a/ospfd/ospf_lsa.c b/ospfd/ospf_lsa.c
index 9968d27..132a281 100644
--- a/ospfd/ospf_lsa.c
+++ b/ospfd/ospf_lsa.c
@@ -2913,7 +2913,7 @@
           }
 
         /* Remove LSA from the LSDB */
-        if (CHECK_FLAG (lsa->flags, OSPF_LSA_SELF))
+        if (IS_LSA_SELF (lsa))
           if (IS_DEBUG_OSPF (lsa, LSA_FLOODING))
             zlog_debug ("LSA[Type%d:%s]: LSA 0x%lx is self-oririnated: ",
                        lsa->data->type, inet_ntoa (lsa->data->id), (u_long)lsa);
@@ -3457,7 +3457,7 @@
 
   /* This LSA is already checked. */
   if (CHECK_FLAG (lsa->flags, OSPF_LSA_SELF_CHECKED))
-    return CHECK_FLAG (lsa->flags, OSPF_LSA_SELF);
+    return IS_LSA_SELF (lsa);
 
   /* Make sure LSA is self-checked. */
   SET_FLAG (lsa->flags, OSPF_LSA_SELF_CHECKED);
@@ -3482,11 +3482,11 @@
 	      {
 		/* to make it easier later */
 		SET_FLAG (lsa->flags, OSPF_LSA_SELF);
-		return CHECK_FLAG (lsa->flags, OSPF_LSA_SELF);
+		return IS_LSA_SELF (lsa);
 	      }
       }
 
-  return CHECK_FLAG (lsa->flags, OSPF_LSA_SELF);
+  return IS_LSA_SELF (lsa);
 }
 
 /* Get unique Link State ID. */
@@ -3607,7 +3607,7 @@
 ospf_lsa_refresh (struct ospf *ospf, struct ospf_lsa *lsa)
 {
   struct external_info *ei;
-  assert (CHECK_FLAG (lsa->flags, OSPF_LSA_SELF));
+  assert (IS_LSA_SELF (lsa));
 
   switch (lsa->data->type)
     {
@@ -3650,7 +3650,7 @@
 {
   u_int16_t index, current_index;
   
-  assert (CHECK_FLAG (lsa->flags, OSPF_LSA_SELF));
+  assert (IS_LSA_SELF (lsa));
 
   if (lsa->refresh_list < 0)
     {
@@ -3692,7 +3692,7 @@
 void
 ospf_refresher_unregister_lsa (struct ospf *ospf, struct ospf_lsa *lsa)
 {
-  assert (CHECK_FLAG (lsa->flags, OSPF_LSA_SELF));
+  assert (IS_LSA_SELF (lsa));
   if (lsa->refresh_list >= 0)
     {
       struct list *refresh_list = ospf->lsa_refresh_queue.qs[lsa->refresh_list];
