diff --git a/ospfd/ChangeLog b/ospfd/ChangeLog
index 7bff0a3..ebeaa5b 100644
--- a/ospfd/ChangeLog
+++ b/ospfd/ChangeLog
@@ -1,5 +1,8 @@
 2004-05-05 Paul Jakma <paul@dishone.st>
 
+	* ospf_network.c: (ospf_sock_init) Check whether IP_HDRINCL is
+	  defined. Warn at compile and runtime. Use 
+	  IPTOS_PREC_INTERNETCONTROL otherwise.
 	* ospf_packet.c:  (ospf_associate_packet_vl) cleanup, move 
 	  some of the checks up to ospf_read, return either a 
 	  virtual link oi, or NULL. 
diff --git a/ospfd/ospf_network.c b/ospfd/ospf_network.c
index 87dfb60..2766abd 100644
--- a/ospfd/ospf_network.c
+++ b/ospfd/ospf_network.c
@@ -170,9 +170,20 @@
       exit(-1);
     }
     
-
+#ifdef IP_HDRINCL
+  /* we will include IP header with packet */
+  ret = setsockopt (ospf_sock, IPPROTO_IP, IP_HDRINCL, &hincl, sizeof (hincl));
+  if (ret < 0)
+    {
+      if ( ospfd_privs.change (ZPRIVS_LOWER) )
+        zlog_err ("ospf_sock_init: could not lower privs, %s",
+                   strerror (errno) );
+      zlog_warn ("Can't set IP_HDRINCL option");
+    }
+#elif defined (IPTOS_PREC_INTERNETCONTROL)
+#warning "IP_HDRINCL not available on this system"
+#warning "using IPTOS_PREC_INTERNETCONTROL"
   /* Set precedence field. */
-#ifdef IPTOS_PREC_INTERNETCONTROL
   tos = IPTOS_PREC_INTERNETCONTROL;
   ret = setsockopt (ospf_sock, IPPROTO_IP, IP_TOS,
 		    (char *) &tos, sizeof (int));
@@ -185,17 +196,10 @@
       close (ospf_sock);	/* Prevent sd leak. */
       return ret;
     }
-#endif /* IPTOS_PREC_INTERNETCONTROL */
-
-  /* we will include IP header with packet */
-  ret = setsockopt (ospf_sock, IPPROTO_IP, IP_HDRINCL, &hincl, sizeof (hincl));
-  if (ret < 0)
-    {
-      if ( ospfd_privs.change (ZPRIVS_LOWER) )
-        zlog_err ("ospf_sock_init: could not lower privs, %s",
-                   strerror (errno) );
-      zlog_warn ("Can't set IP_HDRINCL option");
-    }
+#else /* !IPTOS_PREC_INTERNETCONTROL */
+#warning "IP_HDRINCL not available, nor is IPTOS_PREC_INTERNETCONTROL"
+  zlog_warn ("IP_HDRINCL option not available");
+#endif /* IP_HDRINCL */
 
 #if defined (IP_PKTINFO)
   ret = setsockopt (ospf_sock, IPPROTO_IP, IP_PKTINFO, &hincl, sizeof (hincl));
