diff --git a/ospfd/ChangeLog b/ospfd/ChangeLog
index c6607e0..9737854 100644
--- a/ospfd/ChangeLog
+++ b/ospfd/ChangeLog
@@ -1,3 +1,11 @@
+2005-02-17 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
+
+	* ospf_packet.c: (ospf_recv_packet) If there is somehow a runt
+	  packet in the queue, it must be discarded.  Improve warning messages.
+	  Fix scope to static.
+	  (ospf_read) Fix bug: should reset the read thread in all cases
+	  to make sure we continue to get incoming messages.
+
 2005-02-15 Paul Jakma <paul.jakma@sun.com>
 
 	* ospf_packet.c: (ospf_recv_packet) Fix silly error wrt allocating
diff --git a/ospfd/ospf_packet.c b/ospfd/ospf_packet.c
index 5836925..038fd65 100644
--- a/ospfd/ospf_packet.c
+++ b/ospfd/ospf_packet.c
@@ -2043,7 +2043,7 @@
 #endif /* HAVE_OPAQUE_LSA */
 }
 
-struct stream *
+static struct stream *
 ospf_recv_packet (int fd, struct interface **ifp)
 {
   int ret;
@@ -2062,12 +2062,24 @@
   msgh.msg_control = (caddr_t) buff;
   msgh.msg_controllen = sizeof (buff);
   
+  /* XXX Is there an upper limit on the size of these packets?  If there is,
+     it would be more efficient to read the whole packet in one shot without
+     peeking (this would cut down from 2 system calls to 1).  And this would
+     make the error-handling logic a bit more robust. */
   ret = recvfrom (fd, (void *)&iph, sizeof (iph), MSG_PEEK, NULL, 0);
   
   if (ret != sizeof (iph))
     {
-      zlog_warn ("ospf_recv_packet packet smaller than ip header");
-      /* XXX: We peeked, and thus perhaps should discard this packet. */
+      if (ret > 0)
+        {
+	  zlog_warn("ospf_recv_packet: discarding runt packet of length %d "
+		    "(ip header size is %u)",
+		    ret, (u_int)sizeof(iph));
+	  recvfrom (fd, (void *)&iph, ret, 0, NULL, 0);
+        }
+      else
+	zlog_warn("ospf_recv_packet: recvfrom returned %d: %s",
+		  ret, safe_strerror(errno));
       return NULL;
     }
   
@@ -2354,7 +2366,9 @@
 
   /* first of all get interface pointer. */
   ospf = THREAD_ARG (thread);
-  ospf->t_read = NULL;
+
+  /* prepare for next packet. */
+  ospf->t_read = thread_add_read (master, ospf_read, ospf, ospf->fd);
 
   /* read OSPF packet. */
   ibuf = ospf_recv_packet (ospf->fd, &ifp);
@@ -2375,9 +2389,6 @@
       stream_free (ibuf);
       return 0;
     }
-  
-  /* prepare for next packet. */
-  ospf->t_read = thread_add_read (master, ospf_read, ospf, ospf->fd);
 
   /* IP Header dump. */
     if (IS_DEBUG_OSPF_PACKET(0, RECV))
