diff --git a/ospfd/ChangeLog b/ospfd/ChangeLog
index 4125655..82d0039 100644
--- a/ospfd/ChangeLog
+++ b/ospfd/ChangeLog
@@ -1,3 +1,11 @@
+2004-12-11 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
+
+	* ospf_packet.c: (ospf_db_desc) Should be static, not global.
+	  (ospf_hello,ospf_db_desc,ospf_ls_upd,ospf_ls_ack) Improve warning
+	  messages to include identifying information (e.g. router id).
+	* ospf_nsm.c: (nsm_change_state) Improve info message to include
+	  router id and state names.
+
 2004-12-09  Greg Troxel  <gdt@fnord.ir.bbn.com>
 
 	* ospf_apiserver.c (ospf_apiserver_term): Obtain struct
diff --git a/ospfd/ospf_nsm.c b/ospfd/ospf_nsm.c
index e77546a..ce84624 100644
--- a/ospfd/ospf_nsm.c
+++ b/ospfd/ospf_nsm.c
@@ -689,7 +689,7 @@
   /* One of the neighboring routers changes to/from the FULL state. */
   if ((old_state != NSM_Full && state == NSM_Full) ||
       (old_state == NSM_Full && state != NSM_Full))
-    { 
+    {
       if (state == NSM_Full)
 	{
 	  oi->full_nbrs++;
@@ -726,8 +726,11 @@
             ospf_ls_retransmit_clear (nbr);
 	}
 
-      zlog_info ("nsm_change_state(): "
-		 "scheduling new router-LSA origination");
+      zlog_info ("nsm_change_state(%s, %s -> %s): "
+		 "scheduling new router-LSA origination",
+		 inet_ntoa (nbr->router_id),
+		 LOOKUP(ospf_nsm_state_msg, old_state),
+		 LOOKUP(ospf_nsm_state_msg, state));
 
       ospf_router_lsa_timer_add (oi->area);
 
diff --git a/ospfd/ospf_packet.c b/ospfd/ospf_packet.c
index 23b6a09..b4695f4 100644
--- a/ospfd/ospf_packet.c
+++ b/ospfd/ospf_packet.c
@@ -857,8 +857,8 @@
     if (CHECK_FLAG (OPTIONS (oi), OSPF_OPTION_E) !=
 	CHECK_FLAG (hello->options, OSPF_OPTION_E))
       {
-	zlog_warn ("Packet[Hello:RECV]: my options: %x, his options %x",
-		   OPTIONS (oi), hello->options);
+	zlog_warn ("Packet %s [Hello:RECV]: my options: %x, his options %x",
+		   inet_ntoa(ospfh->router_id), OPTIONS (oi), hello->options);
 	return;
       }
   
@@ -1080,7 +1080,7 @@
 }
 
 /* OSPF Database Description message read -- RFC2328 Section 10.6. */
-void
+static void
 ospf_db_desc (struct ip *iph, struct ospf_header *ospfh,
 	      struct stream *s, struct ospf_interface *oi, u_int16_t size)
 {
@@ -1103,7 +1103,9 @@
   /* Check MTU. */
   if (ntohs (dd->mtu) > oi->ifp->mtu)
     {
-      zlog_warn ("Packet[DD]: MTU is larger than [%s]'s MTU", IF_NAME (oi));
+      zlog_warn ("Packet[DD]: Neighbor %s MTU %u is larger than [%s]'s MTU %u",
+		 inet_ntoa (nbr->router_id), ntohs (dd->mtu),
+		 IF_NAME (oi), oi->ifp->mtu);
       return;
     }
 
@@ -1161,7 +1163,7 @@
     case NSM_Attempt:
     case NSM_TwoWay:
       zlog_warn ("Packet[DD]: Neighbor %s state is %s, packet discarded.",
-		 inet_ntoa (ospfh->router_id),
+		 inet_ntoa(nbr->router_id),
 		 LOOKUP (ospf_nsm_state_msg, nbr->state));
       break;
     case NSM_Init:
@@ -1179,14 +1181,16 @@
 	  if (IPV4_ADDR_CMP (&nbr->router_id, &oi->ospf->router_id) > 0)
 	    {
 	      /* We're Slave---obey */
-	      zlog_warn ("Packet[DD]: Negotiation done (Slave).");
+	      zlog_warn ("Packet[DD]: Neighbor %s Negotiation done (Slave).",
+	      		 inet_ntoa(nbr->router_id));
 	      nbr->dd_seqnum = ntohl (dd->dd_seqnum);
 	      nbr->dd_flags &= ~(OSPF_DD_FLAG_MS|OSPF_DD_FLAG_I); /* Reset I/MS */
 	    }
 	  else
 	    {
 	      /* We're Master, ignore the initial DBD from Slave */
-	      zlog_warn ("Packet[DD]: Initial DBD from Slave, ignoring.");
+	      zlog_warn ("Packet[DD]: Neighbor %s: Initial DBD from Slave, "
+	      		 "ignoring.", inet_ntoa(nbr->router_id));
 	      break;
 	    }
 	}
@@ -1195,12 +1199,14 @@
 	       ntohl (dd->dd_seqnum) == nbr->dd_seqnum &&
 	       IPV4_ADDR_CMP (&nbr->router_id, &oi->ospf->router_id) < 0)
 	{
-	  zlog_warn ("Packet[DD]: Negotiation done (Master).");
+	  zlog_warn ("Packet[DD]: Neighbor %s Negotiation done (Master).",
+		     inet_ntoa(nbr->router_id));
 	  nbr->dd_flags &= ~OSPF_DD_FLAG_I;
 	}
       else
 	{
-	  zlog_warn ("Packet[DD]: Negotiation fails.");
+	  zlog_warn ("Packet[DD]: Neighbor %s Negotiation fails.",
+		     inet_ntoa(nbr->router_id));
 	  break;
 	}
       
@@ -1234,11 +1240,13 @@
 	{
 	  if (IS_SET_DD_MS (nbr->dd_flags))
 	    /* Master: discard duplicated DD packet. */
-	    zlog_warn ("Packet[DD] (Master): packet duplicated.");
+	    zlog_warn ("Packet[DD] (Master): Neighbor %s packet duplicated.",
+		       inet_ntoa (nbr->router_id));
 	  else
 	    /* Slave: cause to retransmit the last Database Description. */
 	    {
-	      zlog_warn ("Packet[DD] [Slave]: packet duplicated.");
+	      zlog_warn ("Packet[DD] [Slave]: Neighbor %s packet duplicated.",
+			 inet_ntoa (nbr->router_id));
 	      ospf_db_desc_resend (nbr);
 	    }
 	  break;
@@ -1248,18 +1256,20 @@
       /* Check Master/Slave bit mismatch */
       if (IS_SET_DD_MS (dd->flags) != IS_SET_DD_MS (nbr->last_recv.flags))
 	{
-	  zlog_warn ("Packet[DD]: MS-bit mismatch.");
+	  zlog_warn ("Packet[DD]: Neighbor %s MS-bit mismatch.",
+		     inet_ntoa(nbr->router_id));
 	  OSPF_NSM_EVENT_SCHEDULE (nbr, NSM_SeqNumberMismatch);
 	  if (IS_DEBUG_OSPF_EVENT)
 	    zlog_debug ("Packet[DD]: dd->flags=%d, nbr->dd_flags=%d",
-		       dd->flags, nbr->dd_flags);
+		        dd->flags, nbr->dd_flags);
 	  break;
 	}
 
       /* Check initialize bit is set. */
       if (IS_SET_DD_I (dd->flags))
 	{
-	  zlog_warn ("Packet[DD]: I-bit set.");
+	  zlog_warn ("Packet[DD]: Neighbor %s I-bit set.",
+		     inet_ntoa(nbr->router_id));
 	  OSPF_NSM_EVENT_SCHEDULE (nbr, NSM_SeqNumberMismatch);
 	  break;
 	}
@@ -1271,7 +1281,8 @@
 	  /* Save the new options for debugging */
 	  nbr->options = dd->options;
 #endif /* ORIGINAL_CODING */
-	  zlog_warn ("Packet[DD]: options mismatch.");
+	  zlog_warn ("Packet[DD]: Neighbor %s options mismatch.",
+		     inet_ntoa(nbr->router_id));
 	  OSPF_NSM_EVENT_SCHEDULE (nbr, NSM_SeqNumberMismatch);
 	  break;
 	}
@@ -1282,7 +1293,8 @@
 	  (!IS_SET_DD_MS (nbr->dd_flags) &&
 	   ntohl (dd->dd_seqnum) != nbr->dd_seqnum + 1))
 	{
-	  zlog_warn ("Packet[DD]: sequence number mismatch.");
+	  zlog_warn ("Packet[DD]: Neighbor %s sequence number mismatch.",
+		     inet_ntoa(nbr->router_id));
 	  OSPF_NSM_EVENT_SCHEDULE (nbr, NSM_SeqNumberMismatch);
 	  break;
 	}
@@ -1297,7 +1309,8 @@
 	  if (IS_SET_DD_MS (nbr->dd_flags))
 	    {
 	      /* Master should discard duplicate DD packet. */
-	      zlog_warn ("Packet[DD]: duplicated, packet discarded.");
+	      zlog_warn("Packet[DD]: Neighbor %s duplicated, packet discarded.",
+			inet_ntoa(nbr->router_id));
 	      break;
 	    }
 	  else
@@ -1325,7 +1338,8 @@
       OSPF_NSM_EVENT_SCHEDULE (nbr, NSM_SeqNumberMismatch);
       break;
     default:
-      zlog_warn ("Packet[DD]: NSM illegal status.");
+      zlog_warn ("Packet[DD]: Neighbor %s NSM illegal status %u.",
+		 inet_ntoa(nbr->router_id), nbr->state);
       break;
     }
 }
@@ -1595,8 +1609,10 @@
   /* Check neighbor state. */
   if (nbr->state < NSM_Exchange)
     {
-      zlog_warn ("Link State Update: Neighbor[%s] state is less than Exchange",
-		 inet_ntoa (ospfh->router_id));
+      zlog_warn ("Link State Update: "
+      		 "Neighbor[%s] state %s is less than Exchange",
+		 inet_ntoa (ospfh->router_id),
+		 LOOKUP(ospf_nsm_state_msg, nbr->state));
       return;
     }
 
@@ -1708,7 +1724,8 @@
 	  ospf_ls_ack_send (nbr, lsa);
 
 	  /* Discard LSA. */	  
-	  zlog_warn ("Link State Update: LS age is equal to MaxAge.");
+	  zlog_warn("Link State Update[%s]: LS age is equal to MaxAge.",
+		    dump_lsa_key(lsa));
           DISCARD_LSA (lsa, 3);
 	}
 
@@ -1818,7 +1835,8 @@
       if (ospf_ls_request_lookup (nbr, lsa))
 	{
 	  OSPF_NSM_EVENT_SCHEDULE (nbr, NSM_BadLSReq);
-	  zlog_warn ("LSA instance exists on Link state request list");
+	  zlog_warn("LSA[%s] instance exists on Link state request list",
+	  	    dump_lsa_key(lsa));
 
 	  /* Clean list of LSAs. */
           ospf_upd_list_clean (lsas);
@@ -1949,7 +1967,10 @@
 
   if (nbr->state < NSM_Exchange)
     {
-      zlog_warn ("Link State Acknowledgment: State is less than Exchange.");
+      zlog_warn ("Link State Acknowledgment: "
+      		 "Neighbor[%s] state %s is less than Exchange",
+		 inet_ntoa (ospfh->router_id),
+		 LOOKUP(ospf_nsm_state_msg, nbr->state));
       return;
     }
 
