diff --git a/ospfd/ChangeLog b/ospfd/ChangeLog
index 3724e36..6e1a864 100644
--- a/ospfd/ChangeLog
+++ b/ospfd/ChangeLog
@@ -1,7 +1,13 @@
 2004-09-27 Paul Jakma <paul@dishone.st>
 
-	* ospf_packet.c: (ospf_write) (struct msghdr).msg_name is caddr_t
-	  on most platforms.
+	* ospf_dump.c: (ospf_ip_header_dump) Use HAVE_IP_HDRINCL_BSD_ORDER
+	  Apply to offset too. Print ip_cksum, lets not worry about
+	  possible 2.0.37 compile problems.
+	* ospf_packet.c: (ospf_swap_iph_to{n,h}) Use
+	  HAVE_IP_HDRINCL_BSD_ORDER.
+	  (ospf_recv_packet) ditto.
+	  (ospf_write) Fixup iov argument to ospf_write_frags.
+          (struct msghdr).msg_name is caddr_t on most platforms.
 	  (ospf_recv_packet) ditto. And msg_flags is not always there
           memset struct then set fields we care about rather than 
           initialise all fields individually.
diff --git a/ospfd/ospf_dump.c b/ospfd/ospf_dump.c
index 958baa4..248cfbb 100644
--- a/ospfd/ospf_dump.c
+++ b/ospfd/ospf_dump.c
@@ -602,15 +602,18 @@
 ospf_ip_header_dump (struct stream *s)
 {
   u_int16_t length;
+  u_int16_t offset;
   struct ip *iph;
 
   iph = (struct ip *) STREAM_PNT (s);
 
-#ifdef GNU_LINUX
-  length = ntohs (iph->ip_len);
-#else /* GNU_LINUX */
+#ifdef HAVE_IP_HDRINCL_BSD_ORDER
   length = iph->ip_len;
-#endif /* GNU_LINUX */
+  offset = iph->ip_off;
+#else /* !HAVE_IP_HDRINCL_BSD_ORDER */
+  length = ntohs (iph->ip_len);
+  offset = ntohs (iph->ip_off);
+#endif /* HAVE_IP_HDRINCL_BSD_ORDER */
 
   /* IP Header dump. */
   zlog_info ("ip_v %d", iph->ip_v);
@@ -618,12 +621,10 @@
   zlog_info ("ip_tos %d", iph->ip_tos);
   zlog_info ("ip_len %d", length);
   zlog_info ("ip_id %u", (u_int32_t) iph->ip_id);
-  zlog_info ("ip_off %u", (u_int32_t) iph->ip_off);
+  zlog_info ("ip_off %u", (u_int32_t) offset);
   zlog_info ("ip_ttl %d", iph->ip_ttl);
   zlog_info ("ip_p %d", iph->ip_p);
-  /* There is a report that Linux 2.0.37 does not have ip_sum.  But
-     I'm not sure.  Temporary commented out by kunihiro. */
-  /* zlog_info ("ip_sum 0x%x", (u_int32_t) ntohs (iph->ip_sum)); */
+  zlog_info ("ip_sum 0x%x", (u_int32_t) ntohs (iph->ip_sum));
   zlog_info ("ip_src %s",  inet_ntoa (iph->ip_src));
   zlog_info ("ip_dst %s", inet_ntoa (iph->ip_dst));
 }
diff --git a/ospfd/ospf_packet.c b/ospfd/ospf_packet.c
index c362b9f..eaf8b76 100644
--- a/ospfd/ospf_packet.c
+++ b/ospfd/ospf_packet.c
@@ -489,10 +489,11 @@
   /* BSD and derived take iph in network order, except for 
    * ip_len and ip_off
    */
-#ifdef GNU_LINUX
+#ifndef HAVE_IP_HDRINCL_BSD_ORDER
   iph->ip_len = htons(iph->ip_len);
   iph->ip_off = htons(iph->ip_off);
-#endif
+#endif /* HAVE_IP_HDRINCL_BSD_ORDER */
+
   iph->ip_id = htons(iph->ip_id);
 }
 
@@ -500,19 +501,23 @@
 void
 ospf_swab_iph_toh (struct ip *iph)
 {
-#ifdef GNU_LINUX
+#ifdef HAVE_IP_HDRINCL_BSD_ORDER
   iph->ip_len = ntohs(iph->ip_len);
   iph->ip_off = ntohs(iph->ip_off);
-#endif  
+#endif /* HAVE_IP_HDRINCL_BSD_ORDER */
+
   iph->ip_id = ntohs(iph->ip_id);
 }
 
 #ifdef WANT_OSPF_WRITE_FRAGMENT
 void
-ospf_write_frags (struct ospf_packet *op, struct ip *ip, struct msghdr *msg, 
-                  struct iovec *iov, int maxdatasize);
+ospf_write_frags (int fd, struct ospf_packet *op, struct ip *iph, 
+                  struct msghdr *msg, struct iovec **iov, 
+                  int maxdatasize, int mtu, int flags)
 {
 #define OSPF_WRITE_FRAG_SHIFT 3
+  u_int16_t offset;
+  int ret;
 
   assert ( op->length == stream_get_endp(op->s) );
 
@@ -542,11 +547,11 @@
       /* data length of this frag is to next offset value */
       iov[1]->iov_len = offset << OSPF_WRITE_FRAG_SHIFT;
       iph->ip_len = iov[1]->iov_len + sizeof (struct ip);
-      assert (iph->ip_len <= oi->ifp->mtu);
+      assert (iph->ip_len <= mtu);
 
       ospf_swab_iph_ton (iph);
 
-      ret = sendmsg (ospf->fd, msg, flags);
+      ret = sendmsg (fd, msg, flags);
       
       ospf_swab_iph_toh (iph);
       
@@ -580,7 +585,7 @@
   struct sockaddr_in sa_dst;
   struct ip iph;
   struct msghdr msg;
-  struct iovec iov[2];
+  struct iovec iov[2], *iovp;
   u_char type;
   int ret;
   int flags = 0;
@@ -588,7 +593,7 @@
 #ifdef WANT_OSPF_WRITE_FRAGMENT
   static u_int16_t ipid = 0;
 #endif /* WANT_OSPF_WRITE_FRAGMENT */
-  u_int16_t maxdatasize, offset;
+  u_int16_t maxdatasize;
 #define OSPF_WRITE_IPHL_SHIFT 2
   
   ospf->t_write = NULL;
@@ -679,7 +684,11 @@
    */
 #ifdef WANT_OSPF_WRITE_FRAGMENT
   if ( op->length > maxdatasize )
-    ospf_write_frags (&op, &ip, &msg, &iov, maxdatasize);
+    {
+      iovp = iov;
+      ospf_write_frags (ospf->fd, op, &iph, &msg, &iovp, maxdatasize, 
+                        oi->ifp->mtu, flags);
+    }
 #endif /* WANT_OSPF_WRITE_FRAGMENT */
 
   /* send final fragment (could be first) */
@@ -2032,7 +2041,7 @@
       return NULL;
     }
 
-#if defined(__NetBSD__) || defined(__FreeBSD__) || (defined(__OpenBSD__) && (OpenBSD < 200311))
+#ifdef HAVE_IP_HDRINCL_BSD_ORDER
   ip_len = iph.ip_len;
 #else
   ip_len = ntohs (iph.ip_len);
