diff --git a/ChangeLog b/ChangeLog
index c249328..b90f093 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,33 @@
+2004-03-03 PC Drew <pc@superiorcomm.net>
+
+	* lib/keychain.c: typecast time_t function to long, fixes compile
+	  warning.
+	* lib/debug.c: wrapped function with ifdef HAVE_GLIBC_BACKTRACE fixes
+	  compile warning when backtrace doesn't exist for that system.
+	* zebra/rtadv.c: for OpenBSD, added include statement for
+	  netinet/icmp6.h
+	* zebra/zserv.c: added default case to switch statements, fixes compile
+	  warning about certain NEXTHOP_TYPE enumeration values not being
+	  handled.
+	* zebra/rt_socket.c: set *mask = NULL by default, fixes compile
+	  warning, about mask possibly being used uninitialized.
+	* bgpd/bgp_nexthop.c: added default case to switch statements, fixes
+	  compile warning about certain NEXTHOP_TYPE enumeration values not
+	  being handled.
+	* ospfd/ospf_spf.c: typecast time_t to long, fixes compile warning.
+	* ospfd/ospf_route.c: typecast route_node->prefix to prefix_ipv4, fixes
+	  compile warning.
+	* ospfd/ospf_route.c: typecast prefix_ipv4 to prefix, fixes compile
+	  warning.
+	* ospfd/ospf_abr.c: typecast prefix to prefix_ipv4 in two instances,
+	  fixes compile warning.
+	* vtysh/vtysh.c: fixed null pointer sentinel value when doing execl and
+	  friends, fixes compile warning.
+	* ospf6d/ospf6_damp.c: typecast time_t to long in 4 instances, fixes
+	  compile warning.
+	* ospf6d/ospf6_main.c: use MAXPATHLEN (if set) instead of 64 for the
+	  _cwd array, fixes compile warning.
+
 2004-01-19 Paul Jakma <paul@dishone.st>
 
 	* tests/test-sig.c: New file, regression test for sigevents.
diff --git a/bgpd/bgp_nexthop.c b/bgpd/bgp_nexthop.c
index 3b91373..4f43b9d 100644
--- a/bgpd/bgp_nexthop.c
+++ b/bgpd/bgp_nexthop.c
@@ -153,6 +153,9 @@
 	return 0;
       break;
 #endif /* HAVE_IPV6 */
+    default:
+      /* do nothing */
+      break;
     }
   return 1;
 }
@@ -882,6 +885,9 @@
 	    case ZEBRA_NEXTHOP_IFNAME:
 	      nexthop->ifindex = stream_getl (s);
 	      break;
+            default:
+              /* do nothing */
+              break;
 	    }
 	  bnc_nexthop_add (bnc, nexthop);
 	}
@@ -982,6 +988,9 @@
 	    case ZEBRA_NEXTHOP_IFNAME:
 	      nexthop->ifindex = stream_getl (s);
 	      break;
+	    default:
+	      /* do nothing */
+	      break;
 	    }
 	  bnc_nexthop_add (bnc, nexthop);
 	}
diff --git a/lib/debug.c b/lib/debug.c
index c4b67a5..252e4dd 100644
--- a/lib/debug.c
+++ b/lib/debug.c
@@ -4,6 +4,7 @@
 void 
 debug_print_trace (int signal)
 {
+#ifdef HAVE_GLIBC_BACKTRACE
     void *array[10];
     size_t size;
     char **strings;   
@@ -18,6 +19,7 @@
       printf ("%s\n", strings[i]);
 
     free (strings);
+#endif /* HAVE_GLIBC_BACKTRACE */
     
     exit(1);
 }
diff --git a/lib/keychain.c b/lib/keychain.c
index dbf431a..527da05 100644
--- a/lib/keychain.c
+++ b/lib/keychain.c
@@ -921,7 +921,7 @@
 		vty_out (vty, " infinite");
 	      else if (key->accept.duration)
 		vty_out (vty, " duration %ld",
-			 key->accept.end - key->accept.start);
+			 (long)(key->accept.end - key->accept.start));
 	      else
 		{
 		  keychain_strftime (buf, BUFSIZ, &key->accept.end);
@@ -938,7 +938,7 @@
 	      if (key->send.end == -1)
 		vty_out (vty, " infinite");
 	      else if (key->send.duration)
-		vty_out (vty, " duration %ld", key->send.end - key->send.start);
+		vty_out (vty, " duration %ld", (long)(key->send.end - key->send.start));
 	      else
 		{
 		  keychain_strftime (buf, BUFSIZ, &key->send.end);
diff --git a/ospf6d/ospf6_damp.c b/ospf6d/ospf6_damp.c
index 878c48f..40cf798 100644
--- a/ospf6d/ospf6_damp.c
+++ b/ospf6d/ospf6_damp.c
@@ -279,7 +279,7 @@
       gettimeofday (&now, NULL);
       zlog_info ("DAMP: %lu.%06lu stop damping: %ld: type: %d, name: %s",
                  now.tv_sec, now.tv_usec,
-                 t_now, di->type, namebuf);
+                 (long)t_now, di->type, namebuf);
     }
 
   /* set flag indicates that we're damping this target */
@@ -435,7 +435,7 @@
           gettimeofday (&now, NULL);
           zlog_info ("DAMP: %lu.%06lu stop damping: %ld: type: %d, name: %s",
                      now.tv_sec, now.tv_usec,
-                     t_now, di->type, namebuf);
+                     (long)t_now, di->type, namebuf);
         }
       di->damping = OFF;
     }
@@ -450,7 +450,7 @@
           gettimeofday (&now, NULL);
           zlog_info ("DAMP: %lu.%06lu start damping: %ld: type: %d, name: %s",
                      now.tv_sec, now.tv_usec,
-                     t_now, type, namebuf);
+                     (long)t_now, type, namebuf);
         }
       di->damping = ON;
     }
@@ -471,7 +471,7 @@
           gettimeofday (&now, NULL);
           zlog_info ("DAMP: %lu.%06lu start damping: %ld: type: %d, name: %s",
                      now.tv_sec, now.tv_usec,
-                     t_now, type, namebuf);
+                    (long) t_now, type, namebuf);
         }
       di->damping = ON;
     }
diff --git a/ospf6d/ospf6_main.c b/ospf6d/ospf6_main.c
index be46f3f..f0a23eb 100644
--- a/ospf6d/ospf6_main.c
+++ b/ospf6d/ospf6_main.c
@@ -97,7 +97,13 @@
 char *pid_file = PATH_OSPF6D_PID;
 
 /* for reload */
+
+#ifdef MAXPATHLEN
+char _cwd[MAXPATHLEN];
+#else
 char _cwd[64];
+#endif
+
 char _progpath[64];
 int _argc;
 char **_argv;
diff --git a/ospfd/ospf_abr.c b/ospfd/ospf_abr.c
index bacae91..424d1d3 100644
--- a/ospfd/ospf_abr.c
+++ b/ospfd/ospf_abr.c
@@ -1078,7 +1078,7 @@
 
       if (IS_DEBUG_OSPF_EVENT)
 	zlog_info ("ospf_abr_process_network_rt(): announcing");
-      ospf_abr_announce_network (ospf, &rn->p, or);
+      ospf_abr_announce_network (ospf, (struct prefix_ipv4 *)&rn->p, or);
     }
 
   if (IS_DEBUG_OSPF_EVENT)
@@ -1474,7 +1474,7 @@
 				     " a transit area");
 			continue; 
 		      }
-		    ospf_abr_announce_network_to_area (&p, range->cost, ar);
+		    ospf_abr_announce_network_to_area ((struct prefix_ipv4 *)&p, range->cost, ar);
 		  }
 	      }
 	  }
diff --git a/ospfd/ospf_flood.c b/ospfd/ospf_flood.c
index 05fcacd..22611d8 100644
--- a/ospfd/ospf_flood.c
+++ b/ospfd/ospf_flood.c
@@ -355,7 +355,6 @@
 			      struct ospf_neighbor *inbr,
 			      struct ospf_lsa *lsa)
 {
-  struct ospf *ospf = oi->ospf;
   struct ospf_neighbor *onbr;
   struct route_node *rn;
   int retx_flag;
diff --git a/ospfd/ospf_route.c b/ospfd/ospf_route.c
index c1c11f1..9889d6b 100644
--- a/ospfd/ospf_route.c
+++ b/ospfd/ospf_route.c
@@ -192,8 +192,8 @@
     {
       if (rn && rn->info)
         {
-          struct prefix_ipv4 *p = &rn->p;
-          if ( (ext_rn = route_node_lookup (external_routes, p)) )
+          struct prefix_ipv4 *p = (struct prefix_ipv4 *)(&rn->p);
+          if ( (ext_rn = route_node_lookup (external_routes, (struct prefix *)p)) )
             {
               ospf_zebra_delete (p, ext_rn->info);
               if (ext_rn->info)
diff --git a/ospfd/ospf_spf.c b/ospfd/ospf_spf.c
index 8399e18..5ced71c 100644
--- a/ospfd/ospf_spf.c
+++ b/ospfd/ospf_spf.c
@@ -1132,7 +1132,7 @@
     delay = ospf->spf_delay;
 
   if (IS_DEBUG_OSPF_EVENT)
-    zlog_info ("SPF: calculation timer delay = %ld", delay);
+    zlog_info ("SPF: calculation timer delay = %ld", (long)delay);
   ospf->t_spf_calc =
     thread_add_timer (master, ospf_spf_calculate_timer, ospf, delay);
 }
diff --git a/vtysh/ChangeLog b/vtysh/ChangeLog
index 55421da..f4bf934 100644
--- a/vtysh/ChangeLog
+++ b/vtysh/ChangeLog
@@ -1,3 +1,7 @@
+2004-03-04 Hasso Tepper <hasso@estpak.ee>
+
+	* vtysh.c: Remove using PAGER.
+
 2004-01-15 Paul Jakma <paul@dishone.st>
 
 	* vtysh_config.c: Fix up strlen to use correct string.
diff --git a/vtysh/vtysh.c b/vtysh/vtysh.c
index 36b7c58..c92c6c4 100644
--- a/vtysh/vtysh.c
+++ b/vtysh/vtysh.c
@@ -350,8 +350,6 @@
 {
   vtysh_pager_name = getenv ("VTYSH_PAGER");
   if (! vtysh_pager_name)
-    vtysh_pager_name = getenv ("PAGER");
-  if (! vtysh_pager_name)
     vtysh_pager_name = "more";
 }
 
@@ -1465,13 +1463,13 @@
       switch (argc)
 	{
 	case 0:
-	  ret = execlp (command, command, NULL);
+	  ret = execlp (command, command, (const char *)NULL);
 	  break;
 	case 1:
-	  ret = execlp (command, command, arg1, NULL);
+	  ret = execlp (command, command, arg1, (const char *)NULL);
 	  break;
 	case 2:
-	  ret = execlp (command, command, arg1, arg2, NULL);
+	  ret = execlp (command, command, arg1, arg2, (const char *)NULL);
 	  break;
 	}
 
diff --git a/zebra/rt_socket.c b/zebra/rt_socket.c
index d603c60..5b2a5e7 100644
--- a/zebra/rt_socket.c
+++ b/zebra/rt_socket.c
@@ -71,7 +71,7 @@
 kernel_rtm_ipv4 (int cmd, struct prefix *p, struct rib *rib, int family)
 
 {
-  struct sockaddr_in *mask;
+  struct sockaddr_in *mask = NULL;
   struct sockaddr_in sin_dest, sin_mask, sin_gate;
   struct nexthop *nexthop;
   int nexthop_num = 0;
diff --git a/zebra/rtadv.c b/zebra/rtadv.c
index 61abd95..c98b11c 100644
--- a/zebra/rtadv.c
+++ b/zebra/rtadv.c
@@ -41,6 +41,10 @@
 
 #if defined (HAVE_IPV6) && defined (RTADV)
 
+#ifdef OPEN_BSD
+#include <netinet/icmp6.h>
+#endif
+
 /* If RFC2133 definition is used. */
 #ifndef IPV6_JOIN_GROUP
 #define IPV6_JOIN_GROUP  IPV6_ADD_MEMBERSHIP 
diff --git a/zebra/zserv.c b/zebra/zserv.c
index 0f30a55..833b369 100644
--- a/zebra/zserv.c
+++ b/zebra/zserv.c
@@ -862,6 +862,9 @@
 	      case ZEBRA_NEXTHOP_IFNAME:
 		stream_putl (s, nexthop->ifindex);
 		break;
+	      default:
+                /* do nothing */
+		break;
 	      }
 	    num++;
 	  }
@@ -921,6 +924,9 @@
 	      case ZEBRA_NEXTHOP_IFNAME:
 		stream_putl (s, nexthop->ifindex);
 		break;
+	      default:
+                /* do nothing */
+		break;
 	      }
 	    num++;
 	  }
@@ -979,6 +985,9 @@
 	      case ZEBRA_NEXTHOP_IFNAME:
 		stream_putl (s, nexthop->ifindex);
 		break;
+	      default:
+                /* do nothing */
+		break;
 	      }
 	    num++;
 	  }
