diff --git a/.cvsignore b/.cvsignore
index bc7ff74..7e70c8d 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -13,3 +13,4 @@
 aclocal.m4
 Makefile.in
 zebra-[0-9.][0-9.][0-9.]*.tar.gz
+quagga-[0-9.][0-9.][0-9.]*.tar.gz
diff --git a/Makefile.am b/Makefile.am
index 6d9d864..699c530 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -15,5 +15,5 @@
 	cp -p $(srcdir)/tools/*.el $(distdir)/tools
 	cp -p $(srcdir)/tools/*.cgi $(distdir)/tools
 	cp -p $(srcdir)/redhat/*.init $(distdir)/redhat
-	cp -p $(srcdir)/redhat/zebra.* $(distdir)/redhat
+	cp -p $(srcdir)/redhat/quagga.* $(distdir)/redhat
 	rm -rf `find $(distdir)/doc -type d -name CVS`
diff --git a/bgpd/bgp_main.c b/bgpd/bgp_main.c
index ce4503d..f3c2f3e 100644
--- a/bgpd/bgp_main.c
+++ b/bgpd/bgp_main.c
@@ -305,7 +305,7 @@
   vty_serv_sock (vty_addr, vty_port, BGP_VTYSH_PATH);
 
   /* Print banner. */
-  zlog_info ("BGPd %s starting: vty@%d, bgp@%d", ZEBRA_VERSION,
+  zlog_info ("BGPd %s starting: vty@%d, bgp@%d", QUAGGA_VERSION,
 	     vty_port, bm->port);
 
   /* Start finite state machine, here we go! */
diff --git a/configure.ac b/configure.ac
index ce98af1..25bdd73 100755
--- a/configure.ac
+++ b/configure.ac
@@ -1,13 +1,14 @@
 ##
-## Configure template file for Zebra.
+## Configure template file for Quagga.
 ## autoconf will generate configure script.
 ##
 ##  Copyright (c) 1996, 97, 98, 99, 2000 Kunihiro Ishiguro <kunihiro@zebra.org>
+##  Portions Copyright (c) 2003 Paul Jakma <paul@dishone.st>
 ##
-AC_PREREQ(2.13)
+AC_PREREQ(2.53)
 
 AC_INIT(lib/zebra.h)
-AM_INIT_AUTOMAKE(zebra, 0.94)
+AM_INIT_AUTOMAKE(quagga, 0.96)
 AM_CONFIG_HEADER(config.h)
 
 dnl -----------------------------------
@@ -56,7 +57,7 @@
 dnl Packages configuration
 dnl ----------------------
 AC_ARG_ENABLE(vtysh,
-[  --enable-vtysh,       Make integrated VTY version of zebra])
+[  --enable-vtysh,       Make integrated vty shell for Quagga])
 AC_ARG_ENABLE(ipv6,
 [  --disable-ipv6          turn off IPv6 related features and daemons])
 AC_ARG_ENABLE(zebra,
@@ -98,10 +99,10 @@
 [  --enable-ospf-te        enable Traffic Engineering Extension to OSPF])
 AC_ARG_ENABLE(multipath,
 [  --enable-multipath=ARG  enable multipath function, ARG must be digit])
-AC_ARG_ENABLE(zebra_user,
-[  --enable-user=ARG       user to run zebra suite as (default zebra)])
-AC_ARG_ENABLE(zebra_group,
-[  --enable-group=ARG      group to run zebra suite as (default zebra)])
+AC_ARG_ENABLE(quagga_user,
+[  --enable-user=ARG       user to run Quagga suite as (default quagga)])
+AC_ARG_ENABLE(quagga_group,
+[  --enable-group=ARG      group to run Quagga suite as (default quagga)])
 AC_ARG_ENABLE(vty_group,
 [  --enable-vty-group=ARG      set vty sockets to have specified group as owner])
 
@@ -135,27 +136,27 @@
   AC_DEFINE(HAVE_OSPF_TE,,OSPF TE)
 fi
 
-AC_MSG_CHECKING(Should Zebra's RTADV be used)
+AC_MSG_CHECKING(Should zebra's RTADV be used)
 if test "${enable_rtadv}" = "yes"; then
   AC_MSG_RESULT(yes)
-  AC_DEFINE(HAVE_RTADV,,Enable Zebra IPv6 Routing Advertisements)
+  AC_DEFINE(HAVE_RTADV,,Enable zebra IPv6 Routing Advertisements)
 else
   AC_MSG_RESULT(no)
 fi
 
 if test "${enable_user}" = "yes" || test x"${enable_user}" = x""; then
-  enable_user="zebra"
+  enable_user="quagga"
 elif test "${enable_user}" = "no"; then
   enable_user="root"
 fi
-AC_DEFINE_UNQUOTED(ZEBRA_USER, "${enable_user}", Zebra User)
+AC_DEFINE_UNQUOTED(QUAGGA_USER, "${enable_user}", Quagga User)
 
 if test "${enable_group}" = "yes" || test x"${enable_group}" = x""; then
-  enable_group="zebra"
+  enable_group="quagga"
 elif test "${enable_group}" = "no"; then
   enable_group="root"
 fi
-AC_DEFINE_UNQUOTED(ZEBRA_GROUP, "${enable_group}", Zebra Group)
+AC_DEFINE_UNQUOTED(QUAGGA_GROUP, "${enable_group}", Quagga Group)
 
 if test x"${enable_vty_group}" = x"yes" ; then
   AC_MSG_ERROR([--enable-vty-group requires a group as argument, not yes])
@@ -907,10 +908,10 @@
 AC_TRY_COMPILE([#include <sys/prctl.h>],[prctl(PR_SET_KEEPCAPS, 1, 0, 0, 0);],
   [AC_MSG_RESULT(yes)
    AC_DEFINE(HAVE_PR_SET_KEEPCAPS,,prctl)
-   zebra_ac_keepcaps="yes"],
+   quagga_ac_keepcaps="yes"],
    AC_MSG_RESULT(no)
 )
-if test x"${zebra_ac_keepcaps}" = x"yes"; then
+if test x"${quagga_ac_keepcaps}" = x"yes"; then
   AC_CHECK_HEADERS(sys/capability.h)
 fi
 if test x"${ac_cv_header_sys_capability_h}" = x"yes"; then
@@ -938,7 +939,7 @@
 dnl check version
 dnl -------------
 file="${srcdir}/lib/version.h"
-VERSION=`sed -ne 's/^#.*ZEBRA_VERSION.*\"\([^\"]*\)\"$/\1/p' $file`
+VERSION=`sed -ne 's/^#.*QUAGGA_VERSION.*\"\([^\"]*\)\"$/\1/p' $file`
 AC_SUBST(VERSION)
 
 dnl ----------
@@ -951,45 +952,45 @@
 dnl set paths for state directory
 dnl ------------------------------
 if test "${prefix}" = "NONE"; then
-  zebra_statedir_prefix="";
+  quagga_statedir_prefix="";
 else
-  zebra_statedir_prefix=${prefix}
+  quagga_statedir_prefix=${prefix}
 fi
 if test "${localstatedir}" = '${prefix}/var'; then
   AC_CACHE_CHECK(state directory,ac_statedir,
-  [for ZEBRA_STATE_DIR in ${zebra_statedir_prefix}/var/run dnl
-			${zebra_statedir_prefix}/var/adm dnl
-			${zebra_statedir_prefix}/etc dnl
+  [for QUAGGA_STATE_DIR in ${quagga_statedir_prefix}/var/run dnl
+			${quagga_statedir_prefix}/var/adm dnl
+			${quagga_statedir_prefix}/etc dnl
 			/var/run	dnl
                         /var/adm	dnl
                         /etc		dnl
                         /dev/null;
   do
-    test -d $ZEBRA_STATE_DIR && break
+    test -d $QUAGGA_STATE_DIR && break
   done
-  zebra_statedir=$ZEBRA_STATE_DIR])
+  quagga_statedir=$QUAGGA_STATE_DIR])
 else
-  zebra_statedir=${localstatedir}
+  quagga_statedir=${localstatedir}
   AC_MSG_CHECKING(directory to use for state file)
-  AC_MSG_RESULT(${zebra_statedir})
+  AC_MSG_RESULT(${quagga_statedir})
 fi
-if test $zebra_statedir = "/dev/null"; then
+if test $quagga_statedir = "/dev/null"; then
     AC_MSG_ERROR('STATE DIRECTORY NOT FOUND! FIX OR SPECIFY --localstatedir!')
 fi
 
-AC_DEFINE_UNQUOTED(PATH_ZEBRA_PID, "$zebra_statedir/zebra.pid",zebra PID)
-AC_DEFINE_UNQUOTED(PATH_RIPD_PID, "$zebra_statedir/ripd.pid",ripd PID)
-AC_DEFINE_UNQUOTED(PATH_RIPNGD_PID, "$zebra_statedir/ripngd.pid",ripngd PID)
-AC_DEFINE_UNQUOTED(PATH_BGPD_PID, "$zebra_statedir/bgpd.pid",bgpd PID)
-AC_DEFINE_UNQUOTED(PATH_OSPFD_PID, "$zebra_statedir/ospfd.pid",ospfd PID)
-AC_DEFINE_UNQUOTED(PATH_OSPF6D_PID, "$zebra_statedir/ospf6d.pid",ospf6d PID)
-AC_DEFINE_UNQUOTED(ZEBRA_SERV_PATH, "$zebra_statedir/zserv.api",zebra api socket)
-AC_DEFINE_UNQUOTED(ZEBRA_VTYSH_PATH, "$zebra_statedir/zebra.vty",zebra vty socket)
-AC_DEFINE_UNQUOTED(RIP_VTYSH_PATH, "$zebra_statedir/ripd.vty",rip vty socket)
-AC_DEFINE_UNQUOTED(RIPNG_VTYSH_PATH, "$zebra_statedir/ripngd.vty",ripng vty socket)
-AC_DEFINE_UNQUOTED(BGP_VTYSH_PATH, "$zebra_statedir/bgpd.vty",bgpd vty socket)
-AC_DEFINE_UNQUOTED(OSPF_VTYSH_PATH, "$zebra_statedir/ospfd.vty",ospfd vty socket)
-AC_DEFINE_UNQUOTED(OSPF6_VTYSH_PATH, "$zebra_statedir/ospf6d.vty",ospf6d vty socket)
+AC_DEFINE_UNQUOTED(PATH_ZEBRA_PID, "$quagga_statedir/zebra.pid",zebra PID)
+AC_DEFINE_UNQUOTED(PATH_RIPD_PID, "$quagga_statedir/ripd.pid",ripd PID)
+AC_DEFINE_UNQUOTED(PATH_RIPNGD_PID, "$quagga_statedir/ripngd.pid",ripngd PID)
+AC_DEFINE_UNQUOTED(PATH_BGPD_PID, "$quagga_statedir/bgpd.pid",bgpd PID)
+AC_DEFINE_UNQUOTED(PATH_OSPFD_PID, "$quagga_statedir/ospfd.pid",ospfd PID)
+AC_DEFINE_UNQUOTED(PATH_OSPF6D_PID, "$quagga_statedir/ospf6d.pid",ospf6d PID)
+AC_DEFINE_UNQUOTED(ZEBRA_SERV_PATH, "$quagga_statedir/zserv.api",zebra api socket)
+AC_DEFINE_UNQUOTED(ZEBRA_VTYSH_PATH, "$quagga_statedir/zebra.vty",zebra vty socket)
+AC_DEFINE_UNQUOTED(RIP_VTYSH_PATH, "$quagga_statedir/ripd.vty",rip vty socket)
+AC_DEFINE_UNQUOTED(RIPNG_VTYSH_PATH, "$quagga_statedir/ripngd.vty",ripng vty socket)
+AC_DEFINE_UNQUOTED(BGP_VTYSH_PATH, "$quagga_statedir/bgpd.vty",bgpd vty socket)
+AC_DEFINE_UNQUOTED(OSPF_VTYSH_PATH, "$quagga_statedir/ospfd.vty",ospfd vty socket)
+AC_DEFINE_UNQUOTED(OSPF6_VTYSH_PATH, "$quagga_statedir/ospf6d.vty",ospf6d vty socket)
 
 dnl ---------------------------
 dnl Check htonl works correctly
@@ -1014,18 +1015,18 @@
 	  ripngd/Makefile bgpd/Makefile ospfd/Makefile 
 	  ospf6d/Makefile vtysh/Makefile doc/Makefile 
 	  ospfclient/Makefile
-	  redhat/zebra.spec)
+	  redhat/quagga.spec)
 
 echo "
 zebra configuration
 -------------------
-zebra version           : ${VERSION}
+quagga version           : ${VERSION}
 host operationg system  : ${host_os}
 source code location    : ${srcdir}
 compiler                : ${CC}
 compiler flags          : ${CFLAGS}
 linker flags            : ${LDFLAGS} ${LIBS}
-state file directory    : ${zebra_statedir}
+state file directory    : ${quagga_statedir}
 user to run as		: ${enable_user}
 group to run as		: ${enable_group}
 group for vty sockets	: ${enable_vty_group}
diff --git a/lib/command.c b/lib/command.c
index f207fc6..71db3aa 100644
--- a/lib/command.c
+++ b/lib/command.c
@@ -39,7 +39,7 @@
 /* Default motd string. */
 char *default_motd = 
 "\r\n\
-Hello, this is zebra (version " ZEBRA_VERSION ").\r\n\
+Hello, this is quagga (version " QUAGGA_VERSION ").\r\n\
 Copyright 1996-2002 Kunihiro Ishiguro.\r\n\
 \r\n";
 
@@ -2393,7 +2393,7 @@
        SHOW_STR
        "Displays zebra version\n")
 {
-  vty_out (vty, "Zebra %s (%s).%s", ZEBRA_VERSION,
+  vty_out (vty, "Quagga %s (%s).%s", QUAGGA_VERSION,
 	   host_name,
 	   VTY_NEWLINE);
   vty_out (vty, "Copyright 1996-2002, Kunihiro Ishiguro.%s", VTY_NEWLINE);
diff --git a/lib/print_version.c b/lib/print_version.c
index 6b4064d..4c9be04 100644
--- a/lib/print_version.c
+++ b/lib/print_version.c
@@ -26,6 +26,6 @@
 void
 print_version (char *progname)
 {
-  printf ("%s version %s (%s)\n", progname, ZEBRA_VERSION, host_name);
+  printf ("%s version %s (%s)\n", progname, QUAGGA_VERSION, host_name);
   printf ("Copyright 1996-2001, Kunihiro Ishiguro\n");
 }
diff --git a/lib/smux.c b/lib/smux.c
index c6884d1..e9631cb 100644
--- a/lib/smux.c
+++ b/lib/smux.c
@@ -952,7 +952,7 @@
   u_char *ptr;
   int len;
   u_long version;
-  u_char progname[] = "zebra-" ZEBRA_VERSION;
+  u_char progname[] = "zebra-" QUAGGA_VERSION;
 
   if (debug_smux)
     {
diff --git a/lib/version.h b/lib/version.h
index 028e1f8..84df21c 100644
--- a/lib/version.h
+++ b/lib/version.h
@@ -22,11 +22,11 @@
 #ifndef _ZEBRA_VERSION_H
 #define _ZEBRA_VERSION_H
 
-#define ZEBRA_VERSION     "0.94"
+#define QUAGGA_VERSION     "0.96"
 
 #define ZEBRA_BUG_ADDRESS "bug-zebra@gnu.org"
 
-#define ZEBRA_URL "http://zebra.dishone.st"
+#define ZEBRA_URL "http://www.quagga.net"
 
 extern char *host_name;
 
diff --git a/lib/vty.h b/lib/vty.h
index aaf8a5b..fedfb3e 100644
--- a/lib/vty.h
+++ b/lib/vty.h
@@ -131,7 +131,7 @@
 };
 
 /* Integrated configuration file. */
-#define INTEGRATE_DEFAULT_CONFIG "Zebra.conf"
+#define INTEGRATE_DEFAULT_CONFIG "Quagga.conf"
 
 /* Small macro to determine newline is newline only or linefeed needed. */
 #define VTY_NEWLINE  ((vty->type == VTY_TERM) ? "\r\n" : "\n")
diff --git a/ospf6d/ospf6_main.c b/ospf6d/ospf6_main.c
index 1279b5b..6356879 100644
--- a/ospf6d/ospf6_main.c
+++ b/ospf6d/ospf6_main.c
@@ -130,7 +130,7 @@
 _reload ()
 {
   zlog_notice ("OSPF6d (Zebra-%s ospf6d-%s) reloaded",
-               ZEBRA_VERSION, OSPF6_DAEMON_VERSION);
+               QUAGGA_VERSION, OSPF6_DAEMON_VERSION);
   ospf6_zebra_finish ();
   vty_finish ();
   execve (_progpath, _argv, _envp);
@@ -142,7 +142,7 @@
   ospf6_delete (ospf6);
   unlink (PATH_OSPF6D_PID);
   zlog_notice ("OSPF6d (Zebra-%s ospf6d-%s) terminated",
-               ZEBRA_VERSION, OSPF6_DAEMON_VERSION);
+               QUAGGA_VERSION, OSPF6_DAEMON_VERSION);
   exit (i);
 }
 
@@ -345,7 +345,7 @@
 #ifdef DEBUG
   /* Print start message */
   zlog_notice ("OSPF6d (Zebra-%s ospf6d-%s) starts",
-               ZEBRA_VERSION, OSPF6_DAEMON_VERSION);
+               QUAGGA_VERSION, OSPF6_DAEMON_VERSION);
 #endif
 
   /* Start finite state machine, here we go! */
diff --git a/ospf6d/ospf6d.c b/ospf6d/ospf6d.c
index 04609ba..e83e1ea 100644
--- a/ospf6d/ospf6d.c
+++ b/ospf6d/ospf6d.c
@@ -637,7 +637,7 @@
   if (strncmp (argv[0], "v", 1) == 0)
     {
       proctitle_mode = 1;
-      setproctitle ("%s Zebra: %s", OSPF6_DAEMON_VERSION, ZEBRA_VERSION);
+      setproctitle ("%s Zebra: %s", OSPF6_DAEMON_VERSION, QUAGGA_VERSION);
     }
   else if (strncmp (argv[0], "nor", 3) == 0)
     {
diff --git a/ospfd/ospf_main.c b/ospfd/ospf_main.c
index 211aa78..1da285b 100644
--- a/ospfd/ospf_main.c
+++ b/ospfd/ospf_main.c
@@ -328,7 +328,7 @@
 
 #ifdef DEBUG
   /* Print banner. */
-  zlog (NULL, LOG_INFO, "OSPFd (%s) starts", ZEBRA_VERSION);
+  zlog (NULL, LOG_INFO, "OSPFd (%s) starts", QUAGGA_VERSION);
 #endif
 
   /* Fetch next active thread. */
