diff --git a/ospfd/ChangeLog b/ospfd/ChangeLog
index fa901ce..5c4a670 100644
--- a/ospfd/ChangeLog
+++ b/ospfd/ChangeLog
@@ -1,3 +1,11 @@
+2004-05-31 Sagun Shakya <sagun.shakya@sun.com>
+
+	* ospf_dump.c: (ospf_lsa_header_dump) LOOKUP can return null if
+	  index is out of range.
+	  ospf_flood.c: endianness fix
+	  ospf_lsa.c: Missing ntohl's on (struct lsa *)->data->ls_seqnum
+	  in various places.
+	  
 2004-05-10 Hasso Tepper <hasso@estpak.ee>
 
 	* ospf_zebra.c, ospfd.c: Move ospf_prefix_list_update() function
diff --git a/ospfd/ospf_dump.c b/ospfd/ospf_dump.c
index fe75a96..ccee1d6 100644
--- a/ospfd/ospf_dump.c
+++ b/ospfd/ospf_dump.c
@@ -325,12 +325,14 @@
 void
 ospf_lsa_header_dump (struct lsa_header *lsah)
 {
+  char *lsah_type = LOOKUP (ospf_lsa_type_msg, lsah->type);
+  
   zlog_info ("  LSA Header");
   zlog_info ("    LS age %d", ntohs (lsah->ls_age));
   zlog_info ("    Options %d (%s)", lsah->options,
 	     ospf_options_dump (lsah->options));
   zlog_info ("    LS type %d (%s)", lsah->type,
-	     LOOKUP (ospf_lsa_type_msg, lsah->type));
+             (lsah->type ? lsah->type : "unknown type"));
   zlog_info ("    Link State ID %s", inet_ntoa (lsah->id));
   zlog_info ("    Advertising Router %s", inet_ntoa (lsah->adv_router));
   zlog_info ("    LS sequence number 0x%lx", (u_long)ntohl (lsah->ls_seqnum));
diff --git a/ospfd/ospf_flood.c b/ospfd/ospf_flood.c
index 22611d8..71910dd 100644
--- a/ospfd/ospf_flood.c
+++ b/ospfd/ospf_flood.c
@@ -121,7 +121,7 @@
   if (IS_DEBUG_OSPF_EVENT)
     zlog_info ("LSA[Type%d:%s]: Process self-originated LSA seq 0x%lx",
 	       new->data->type, inet_ntoa (new->data->id), 
-	       (u_long)new->data->ls_seqnum);
+	       ntohl(new->data->ls_seqnum));
 
   /* If we're here, we installed a self-originated LSA that we received
      from a neighbor, i.e. it's more recent.  We must see whether we want
diff --git a/ospfd/ospf_lsa.c b/ospfd/ospf_lsa.c
index 4711f0f..b7550b1 100644
--- a/ospfd/ospf_lsa.c
+++ b/ospfd/ospf_lsa.c
@@ -2380,9 +2380,9 @@
       area->router_lsa_self = ospf_lsa_lock (new);
 
       if (IS_DEBUG_OSPF (lsa, LSA_INSTALL))
-	zlog_info("LSA[Type%d]: ID %s seq 0x%x is self-originated",
-		  new->data->type, inet_ntoa (new->data->id), 
-		  new->data->ls_seqnum);
+        zlog_info("LSA[Type%d]: ID %s seq 0x%x is self-originated",
+                  new->data->type, inet_ntoa (new->data->id),
+                  ntohl(new->data->ls_seqnum));
     }
 
   return new;
@@ -2652,12 +2652,13 @@
       can be originated. "
    */
 
-  if (lsa->data->ls_seqnum - 1 == htonl(OSPF_MAX_SEQUENCE_NUMBER))
+  if (ntohl(lsa->data->ls_seqnum) - 1 ==  htonl(OSPF_MAX_SEQUENCE_NUMBER)
     {
       if (ospf_lsa_is_self_originated(ospf, lsa))
         {
-	  lsa->data->ls_seqnum = htonl(OSPF_MAX_SEQUENCE_NUMBER);
-	  if (!IS_LSA_MAXAGE(lsa))
+          lsa->data->ls_seqnum = htonl(OSPF_MAX_SEQUENCE_NUMBER);
+          
+          if (!IS_LSA_MAXAGE(lsa))
             lsa->flags |= OSPF_LSA_PREMATURE_AGE;
           lsa->data->ls_age = htons (OSPF_LSA_MAXAGE);
       	
@@ -2769,8 +2770,10 @@
       (IS_LSA_MAXAGE (new) && !IS_LSA_SELF (new)))
     {
       if (IS_DEBUG_OSPF (lsa, LSA_INSTALL))
-	zlog_info ("LSA[Type%d:%s]: Install LSA 0x%lx, MaxAge",
-		   new->data->type, inet_ntoa (new->data->id), (u_long)lsa);
+        zlog_info ("LSA[Type%d:%s]: Install LSA 0x%p, MaxAge",
+                   new->data->type, 
+                   inet_ntoa (new->data->id), 
+                   lsa);
       ospf_lsa_maxage (ospf, lsa);
     }
 
