diff --git a/isisd/ChangeLog b/isisd/ChangeLog
index d418d63..822d856 100644
--- a/isisd/ChangeLog
+++ b/isisd/ChangeLog
@@ -1,3 +1,11 @@
+2005-09-05 Hasso Tepper <hasso at quagga.net>
+
+	* *.c: Try to be less verbose by default (without any debug options
+	  on).
+	* isis_lsp.c (lsp_build_nonpseudo): Use stream_reset() instead of
+	  touching endp directly.
+	* isis_lsp.c (lsp_build_pseudo): Ditto.
+
 2005-09-03 Hasso Tepper <hasso at quagga.net>
 
 	* isis_lsp.c: Yet another regression introduced by stream cleanup.
diff --git a/isisd/isis_circuit.c b/isisd/isis_circuit.c
index b99fa5d..e885a65 100644
--- a/isisd/isis_circuit.c
+++ b/isisd/isis_circuit.c
@@ -404,7 +404,9 @@
     }
   else
     {
-      zlog_warn ("isis_circuit_if_add: unsupported media");
+      /* It's normal in case of loopback etc. */
+      if (isis->debugs & DEBUG_EVENTS)
+	zlog_debug ("isis_circuit_if_add: unsupported media");
     }
 
   for (ALL_LIST_ELEMENTS (ifp->connected, node, nnode, conn))
@@ -842,7 +844,8 @@
       if (c->ipv6_router == 0)
 	{
 #endif /* HAVE_IPV6 */
-	  vty_out (vty, "ISIS circuit is already defined%s", VTY_NEWLINE);
+	  /* FIXME: Find the way to warn only vty users. */
+	  /* vty_out (vty, "ISIS circuit is already defined%s", VTY_NEWLINE); */
 	  return CMD_WARNING;
 #ifdef HAVE_IPV6
 	}
@@ -852,7 +855,8 @@
   /* this is here for ciscopability */
   if (!area)
     {
-      vty_out (vty, "Can't find ISIS instance %s", VTY_NEWLINE);
+      /* FIXME: Find the way to warn only vty users. */
+      /* vty_out (vty, "Can't find ISIS instance %s", VTY_NEWLINE); */
       return CMD_WARNING;
     }
 
diff --git a/isisd/isis_csm.c b/isisd/isis_csm.c
index 58a0b29..80d0c90 100644
--- a/isisd/isis_csm.c
+++ b/isisd/isis_csm.c
@@ -77,8 +77,8 @@
   int old_state;
 
   old_state = circuit ? circuit->state : C_STATE_NA;
-
-  zlog_debug ("CSM_EVENT: %s", EVENT2STR (event));
+  if (isis->debugs & DEBUG_EVENTS)
+    zlog_debug ("CSM_EVENT: %s", EVENT2STR (event));
 
   switch (old_state)
     {
@@ -178,8 +178,9 @@
       zlog_warn ("Invalid circuit state %d", old_state);
     }
 
-  zlog_debug ("CSM_STATE_CHANGE: %s -> %s ", STATE2STR (old_state),
-	      circuit ? STATE2STR (circuit->state) : STATE2STR (C_STATE_NA));
+  if (isis->debugs & DEBUG_EVENTS)
+    zlog_debug ("CSM_STATE_CHANGE: %s -> %s ", STATE2STR (old_state),
+		circuit ? STATE2STR (circuit->state) : STATE2STR (C_STATE_NA));
 
   return circuit;
 }
diff --git a/isisd/isis_dr.c b/isisd/isis_dr.c
index a5891f9..335946c 100644
--- a/isisd/isis_dr.c
+++ b/isisd/isis_dr.c
@@ -307,7 +307,8 @@
 {
   u_char old_dr[ISIS_SYS_ID_LEN + 2];
 
-  zlog_debug ("isis_dr_commence l%d", level);
+  if (isis->debugs & DEBUG_EVENTS)
+    zlog_debug ("isis_dr_commence l%d", level);
 
   /* Lets keep a pause in DR election */
   circuit->u.bc.run_dr_elect[level - 1] = 0;
diff --git a/isisd/isis_events.c b/isisd/isis_events.c
index d54036a..a8e60d6 100644
--- a/isisd/isis_events.c
+++ b/isisd/isis_events.c
@@ -283,8 +283,9 @@
   if (!adj || !adj->circuit || !adj->circuit->area)
     return;
 
-  zlog_debug ("ISIS-Evt (%s) Adjacency State change",
-	      adj->circuit->area->area_tag);
+  if (isis->debugs & DEBUG_EVENTS)
+    zlog_debug ("ISIS-Evt (%s) Adjacency State change",
+		adj->circuit->area->area_tag);
 
   /* LSP generation again */
   lsp_regenerate_schedule (adj->circuit->area);
@@ -304,8 +305,8 @@
   /* invalid arguments */
   if (!circuit || !circuit->area)
     return 0;
-
-  zlog_debug ("ISIS-Evt (%s) DIS status change", circuit->area->area_tag);
+  if (isis->debugs & DEBUG_EVENTS)
+    zlog_debug ("ISIS-Evt (%s) DIS status change", circuit->area->area_tag);
 
   /* LSP generation again */
   lsp_regenerate_schedule (circuit->area);
@@ -316,8 +317,9 @@
 void
 isis_event_auth_failure (char *area_tag, const char *error_string, u_char *sysid)
 {
-  zlog_debug ("ISIS-Evt (%s) Authentication failure %s from %s",
-	      area_tag, error_string, sysid_print (sysid));
+  if (isis->debugs & DEBUG_EVENTS)
+    zlog_debug ("ISIS-Evt (%s) Authentication failure %s from %s",
+		area_tag, error_string, sysid_print (sysid));
 
   return;
 }
diff --git a/isisd/isis_lsp.c b/isisd/isis_lsp.c
index cb7b93b..2a9d146 100644
--- a/isisd/isis_lsp.c
+++ b/isisd/isis_lsp.c
@@ -501,13 +501,11 @@
 
   stream_forward_endp (lsp->pdu, ISIS_FIXED_HDR_LEN + ISIS_LSP_HDR_LEN);
 
-  /* #ifdef EXTREME_DEBUG */
-  /* logging */
-  zlog_debug ("New LSP with ID %s-%02x-%02x seqnum %08x", sysid_print (lsp_id),
-	      LSP_PSEUDO_ID (lsp->lsp_header->lsp_id),
-	      LSP_FRAGMENT (lsp->lsp_header->lsp_id),
-	      ntohl (lsp->lsp_header->seq_num));
-  /* #endif  EXTREME DEBUG */
+  if (isis->debugs & DEBUG_EVENTS)
+    zlog_debug ("New LSP with ID %s-%02x-%02x seqnum %08x",
+		sysid_print (lsp_id), LSP_PSEUDO_ID (lsp->lsp_header->lsp_id),
+		LSP_FRAGMENT (lsp->lsp_header->lsp_id),
+		ntohl (lsp->lsp_header->seq_num));
 
   return lsp;
 }
@@ -1302,7 +1300,7 @@
   /* Reset stream endp. Stream is always there and on every LSP refresh only
    * TLV part of it is overwritten. So we must seek past header we will not
    * touch. */
-  lsp->pdu->endp = 0;
+  stream_reset (lsp->pdu);
   stream_forward_endp (lsp->pdu, ISIS_FIXED_HDR_LEN + ISIS_LSP_HDR_LEN);
 
   /*
@@ -1912,7 +1910,7 @@
     }
 
   /* Reset endp of stream to overwrite only TLV part of it. */
-  lsp->pdu->endp = 0;
+  stream_reset (lsp->pdu);
   stream_forward_endp (lsp->pdu, ISIS_FIXED_HDR_LEN + ISIS_LSP_HDR_LEN);
 
   /*
diff --git a/isisd/isis_main.c b/isisd/isis_main.c
index a4f8058..2bb22cb 100644
--- a/isisd/isis_main.c
+++ b/isisd/isis_main.c
@@ -325,9 +325,7 @@
 
   /* Print banner. */
   zlog_notice ("Quagga-ISISd %s starting: vty@%d", QUAGGA_VERSION, vty_port);
-#ifdef HAVE_IPV6
-  zlog_debug ("IPv6 enabled");
-#endif
+
   /* Start finite state machine. */
   while (thread_fetch (master, &thread))
     thread_call (&thread);
diff --git a/isisd/isis_pdu.c b/isisd/isis_pdu.c
index e6a1e03..b15d455 100644
--- a/isisd/isis_pdu.c
+++ b/isisd/isis_pdu.c
@@ -1121,14 +1121,17 @@
 		      && circuit->u.bc.is_dr[level - 1] == 1))
 		{
 		  lsp->lsp_header->seq_num = htonl (ntohl (hdr->seq_num) + 1);
-		  zlog_debug ("LSP LEN: %d", ntohs (lsp->lsp_header->pdu_len));
+		  if (isis->debugs & DEBUG_UPDATE_PACKETS)
+		    zlog_debug ("LSP LEN: %d",
+				ntohs (lsp->lsp_header->pdu_len));
 		  iso_csum_create (STREAM_DATA (lsp->pdu) + 12,
 				   ntohs (lsp->lsp_header->pdu_len) - 12, 12);
 		  ISIS_FLAGS_SET_ALL (lsp->SRMflags);
-		  zlog_debug
-		    ("ISIS-Upd (%s): (1) re-originating LSP %s new seq 0x%08x",
-		     circuit->area->area_tag, rawlspid_print (hdr->lsp_id),
-		     ntohl (lsp->lsp_header->seq_num));
+		  if (isis->debugs & DEBUG_UPDATE_PACKETS)
+		    zlog_debug ("ISIS-Upd (%s): (1) re-originating LSP %s new "
+				"seq 0x%08x", circuit->area->area_tag,
+				rawlspid_print (hdr->lsp_id),
+				ntohl (lsp->lsp_header->seq_num));
 		  lsp->lsp_header->rem_lifetime =
 		    htons (isis_jitter
 			   (circuit->area->max_lsp_lifetime[level - 1],
@@ -1168,10 +1171,11 @@
 			   ntohs (lsp->lsp_header->pdu_len) - 12, 12);
 
 	  ISIS_FLAGS_SET_ALL (lsp->SRMflags);
-	  zlog_debug
-	    ("ISIS-Upd (%s): (2) re-originating LSP %s new seq 0x%08x",
-	     circuit->area->area_tag, rawlspid_print (hdr->lsp_id),
-	     ntohl (lsp->lsp_header->seq_num));
+	  if (isis->debugs & DEBUG_UPDATE_PACKETS)
+	    zlog_debug ("ISIS-Upd (%s): (2) re-originating LSP %s new seq "
+			"0x%08x", circuit->area->area_tag,
+			rawlspid_print (hdr->lsp_id),
+			ntohl (lsp->lsp_header->seq_num));
 	  lsp->lsp_header->rem_lifetime =
 	    htons (isis_jitter
 		   (circuit->area->max_lsp_lifetime[level - 1],
diff --git a/isisd/isis_spf.c b/isisd/isis_spf.c
index dc5765a..ba7acbf 100644
--- a/isisd/isis_spf.c
+++ b/isisd/isis_spf.c
@@ -781,8 +781,9 @@
 	  if (listcount (adj_list) == 0)
 	    {
 	      list_delete (adj_list);
-	      zlog_warn ("ISIS-Spf: no L%d adjacencies on circuit %s",
-			 level, circuit->interface->name);
+	      if (isis->debugs & DEBUG_SPF_EVENTS)
+		zlog_debug ("ISIS-Spf: no L%d adjacencies on circuit %s",
+			    level, circuit->interface->name);
 	      continue;
 	    }
 	  anode = listhead (adj_list);
diff --git a/isisd/isis_zebra.c b/isisd/isis_zebra.c
index 889c5bf..a385e6b 100644
--- a/isisd/isis_zebra.c
+++ b/isisd/isis_zebra.c
@@ -33,8 +33,10 @@
 #include "stream.h"
 #include "linklist.h"
 
+#include "isisd/dict.h"
 #include "isisd/isis_constants.h"
 #include "isisd/isis_common.h"
+#include "isisd/isisd.h"
 #include "isisd/isis_circuit.h"
 #include "isisd/isis_csm.h"
 #include "isisd/isis_route.h"
@@ -43,6 +45,8 @@
 struct zclient *zclient = NULL;
 
 extern struct thread_master *master;
+extern struct isis *isis;
+
 struct in_addr router_id_zebra;
 
 /* Router-id update message from zebra. */
@@ -66,9 +70,9 @@
 
   ifp = zebra_interface_add_read (zclient->ibuf);
 
-
-  zlog_debug ("Zebra I/F add: %s index %d flags %ld metric %d mtu %d",
-	      ifp->name, ifp->ifindex, ifp->flags, ifp->metric, ifp->mtu);
+  if (isis->debugs & DEBUG_ZEBRA)
+    zlog_debug ("Zebra I/F add: %s index %d flags %ld metric %d mtu %d",
+		ifp->name, ifp->ifindex, ifp->flags, ifp->metric, ifp->mtu);
 
   if (if_is_operative (ifp))
     isis_csm_state_change (IF_UP_FROM_Z, circuit_scan_by_ifp (ifp), ifp);
@@ -92,8 +96,9 @@
     zlog_warn ("Zebra: got delete of %s, but interface is still up",
 	       ifp->name);
 
-  zlog_debug ("Zebra I/F delete: %s index %d flags %ld metric %d mtu %d",
-	      ifp->name, ifp->ifindex, ifp->flags, ifp->metric, ifp->mtu);
+  if (isis->debugs & DEBUG_ZEBRA)
+    zlog_debug ("Zebra I/F delete: %s index %d flags %ld metric %d mtu %d",
+		ifp->name, ifp->ifindex, ifp->flags, ifp->metric, ifp->mtu);
 
 
   /* Cannot call if_delete because we should retain the pseudo interface
@@ -560,7 +565,8 @@
 
   if (command == ZEBRA_IPV4_ROUTE_ADD)
     {
-      zlog_debug ("IPv4 Route add from Z");
+      if (isis->debugs & DEBUG_ZEBRA)
+	zlog_debug ("IPv4 Route add from Z");
     }
 
   return 0;
diff --git a/isisd/isisd.c b/isisd/isisd.c
index e6679cf..a8d6950 100644
--- a/isisd/isisd.c
+++ b/isisd/isisd.c
@@ -171,7 +171,8 @@
   area->area_tag = strdup (area_tag);
   listnode_add (isis->area_list, area);
 
-  zlog_debug ("new IS-IS area instance %s", area->area_tag);
+  if (isis->debugs & DEBUG_EVENTS)
+    zlog_debug ("New IS-IS area instance %s", area->area_tag);
 
   vty->node = ISIS_NODE;
   vty->index = area;
@@ -260,7 +261,8 @@
        */
       memcpy (isis->sysid, GETSYSID (addr, ISIS_SYS_ID_LEN), ISIS_SYS_ID_LEN);
       isis->sysid_set = 1;
-      zlog_debug ("Router has SystemID %s", sysid_print (isis->sysid));
+      if (isis->debugs & DEBUG_EVENTS)
+	zlog_debug ("Router has SystemID %s", sysid_print (isis->sysid));
     }
   else
     {
diff --git a/isisd/isisd.h b/isisd/isisd.h
index 77de12e..7a9f764 100644
--- a/isisd/isisd.h
+++ b/isisd/isisd.h
@@ -144,5 +144,6 @@
 #define DEBUG_SPF_TRIGGERS               (1<<8)
 #define DEBUG_RTE_EVENTS                 (1<<9)
 #define DEBUG_EVENTS                     (1<<10)
+#define DEBUG_ZEBRA                      (1<<11)
 
 #endif /* ISISD_H */
