diff --git a/net/quagga/Makefile b/net/quagga/Makefile
index a826589beea5..13c03607fa8d 100644
--- a/net/quagga/Makefile
+++ b/net/quagga/Makefile
@@ -6,8 +6,7 @@
 #
 
 PORTNAME=	quagga
-PORTVERSION=	0.99.14
-PORTREVISION=	3
+PORTVERSION=	0.99.15
 CATEGORIES=	net ipv6
 MASTER_SITES=	http://quagga.net/download/ \
 		http://www.ru.quagga.net/download/ \
diff --git a/net/quagga/distinfo b/net/quagga/distinfo
index 9e98c36d93f0..0b9d907a9dc8 100644
--- a/net/quagga/distinfo
+++ b/net/quagga/distinfo
@@ -1,3 +1,3 @@
-MD5 (quagga-0.99.14.tar.gz) = 3a075fd5e26ec6d52f4a51b14a2d3c2c
-SHA256 (quagga-0.99.14.tar.gz) = 3f637fa1b49d335c00e78602754977d22455ba6e4a82ce4183c4da50667067e5
-SIZE (quagga-0.99.14.tar.gz) = 2185686
+MD5 (quagga-0.99.15.tar.gz) = 8975414c76a295f4855a417af0b5ddce
+SHA256 (quagga-0.99.15.tar.gz) = c86e8818b67cb0381c1821df4fd14ca92696d8b9d67d1c2b35b57b95cf53cdc2
+SIZE (quagga-0.99.15.tar.gz) = 2191159
diff --git a/net/quagga/files/patch-git-1-update-source-fix b/net/quagga/files/patch-git-1-update-source-fix
deleted file mode 100644
index c23ca394eec3..000000000000
--- a/net/quagga/files/patch-git-1-update-source-fix
+++ /dev/null
@@ -1,16 +0,0 @@
-diff -Nur bgpd/bgp_vty.c quagga-0.99.14/bgpd/bgp_vty.c
---- bgpd/bgp_vty.c	2009-07-21 12:45:17 +0400
-+++ bgpd/bgp_vty.c	2009-07-24 21:22:48 +0400
-@@ -2820,10 +2820,10 @@
-   return CMD_SUCCESS;
- }
- 
--#define BGP_UPDATE_SOURCE_STR "(A.B.C.D|X:X::X:X)"
-+#define BGP_UPDATE_SOURCE_STR "(A.B.C.D|WORD)"
- #define BGP_UPDATE_SOURCE_HELP_STR \
-   "IPv4 address\n" \
--  "IPv6 address\n"
-+  "Interface name\n"
- 
- DEFUN (neighbor_update_source,
-        neighbor_update_source_cmd,
diff --git a/net/quagga/files/patch-git-2-pidfile-lock-fix b/net/quagga/files/patch-git-2-pidfile-lock-fix
deleted file mode 100644
index 6d614a4082e8..000000000000
--- a/net/quagga/files/patch-git-2-pidfile-lock-fix
+++ /dev/null
@@ -1,59 +0,0 @@
-diff --git a/zebra/main.c b/zebra/main.c
-index 14b0273..2d6a4ac 100644
---- zebra/main.c
-+++ zebra/main.c
-@@ -382,6 +382,9 @@ main (int argc, char **argv)
-   /* Needed for BSD routing socket. */
-   pid = getpid ();
- 
-+  /* This must be done only after locking pidfile (bug #403). */
-+  zebra_zserv_socket_init ();
-+
-   /* Make vty server socket. */
-   vty_serv_sock (vty_addr, vty_port, ZEBRA_VTYSH_PATH);
- 
-diff --git a/zebra/zserv.c b/zebra/zserv.c
-index a566e6d..cb5e411 100644
---- zebra/zserv.c
-+++ zebra/zserv.c
-@@ -1704,13 +1704,6 @@ zebra_init (void)
-   /* Client list init. */
-   zebrad.client_list = list_new ();
- 
--  /* Make zebra server socket. */
--#ifdef HAVE_TCP_ZEBRA
--  zebra_serv ();
--#else
--  zebra_serv_un (ZEBRA_SERV_PATH);
--#endif /* HAVE_TCP_ZEBRA */
--
-   /* Install configuration write function. */
-   install_node (&table_node, config_write_table);
-   install_node (&forwarding_node, config_write_forwarding);
-@@ -1737,3 +1730,14 @@ zebra_init (void)
-   /* Route-map */
-   zebra_route_map_init ();
- }
-+
-+/* Make zebra server socket, wiping any existing one (see bug #403). */
-+void
-+zebra_zserv_socket_init (void)
-+{
-+#ifdef HAVE_TCP_ZEBRA
-+  zebra_serv ();
-+#else
-+  zebra_serv_un (ZEBRA_SERV_PATH);
-+#endif /* HAVE_TCP_ZEBRA */
-+}
-diff --git a/zebra/zserv.h b/zebra/zserv.h
-index 87a33a4..a737183 100644
---- zebra/zserv.h
-+++ zebra/zserv.h
-@@ -89,6 +89,7 @@ struct zebra_t
- /* Prototypes. */
- extern void zebra_init (void);
- extern void zebra_if_init (void);
-+extern void zebra_zserv_socket_init (void);
- extern void hostinfo_get (void);
- extern void rib_init (void);
- extern void interface_list (void);
diff --git a/net/quagga/files/patch-ospf6d-ospf6_lsa.c b/net/quagga/files/patch-ospf6d-ospf6_lsa.c
deleted file mode 100644
index 82ea9693425b..000000000000
--- a/net/quagga/files/patch-ospf6d-ospf6_lsa.c
+++ /dev/null
@@ -1,28 +0,0 @@
---- ospf6d/ospf6_lsa.c	(revision 21)
-+++ ospf6d/ospf6_lsa.c	(working copy)
-@@ -207,9 +207,11 @@
-     zlog_warn ("LSA: quagga_gettime failed, may fail LSA AGEs: %s",
-                safe_strerror (errno));
- 
--  if (lsa->header->age >= htons (MAXAGE))
-+  if (ntohs (lsa->header->age) >= MAXAGE)
-     {
--      /* LSA may have been prematurely aged */
-+      /* ospf6_lsa_premature_aging () sets age to MAXAGE; when using
-+         relative time, we cannot compare against lsa birth time, so
-+         we catch this special case here. */
-       lsa->header->age = htons (MAXAGE);
-       return MAXAGE;
-     }
-@@ -245,11 +247,6 @@
-   THREAD_OFF (lsa->expire);
-   THREAD_OFF (lsa->refresh);
- 
--  /* 
--   * The below technique to age out LSA does not work when using relative time 
--   *
--  memset (&lsa->birth, 0, sizeof (struct timeval));
--   */
-   lsa->header->age = htons (MAXAGE);
-   thread_execute (master, ospf6_lsa_expire, lsa, 0);
- }