Apply by doing:
       cd /usr/src
       patch -p0 < 004_route.patch

And then rebuild your kernel.

Index: sys/net/route.c
===================================================================
RCS file: /cvs/src/sys/net/route.c,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- sys/net/route.c     2000/03/23 16:37:52     1.18
+++ sys/net/route.c     2000/05/21 22:19:07     1.19
@@ -1,4 +1,4 @@
-/*     $OpenBSD: route.c,v 1.18 2000/03/23 16:37:52 art Exp $  */
+/*     $OpenBSD: route.c,v 1.19 2000/05/21 22:19:07 provos Exp $       */
/*     $NetBSD: route.c,v 1.14 1996/02/13 22:00:46 christos Exp $      */

/*
@@ -343,7 +343,7 @@
               goto done;
       /*
        * Create a new entry if we just got back a wildcard entry
-        * or the the lookup failed.  This is necessary for hosts
+        * or the lookup failed.  This is necessary for hosts
        * which use routing redirects generated by smart gateways
        * to dynamically build the routing tables.
        */
@@ -498,11 +498,11 @@
               if (rn->rn_flags & (RNF_ACTIVE | RNF_ROOT))
                       panic ("rtrequest delete");
               rt = (struct rtentry *)rn;
-               rt->rt_flags &= ~RTF_UP;
               if (rt->rt_gwroute) {
                       rt = rt->rt_gwroute; RTFREE(rt);
                       (rt = (struct rtentry *)rn)->rt_gwroute = NULL;
               }
+               rt->rt_flags &= ~RTF_UP;
               if ((ifa = rt->rt_ifa) && ifa->ifa_rtrequest)
                       ifa->ifa_rtrequest(RTM_DELETE, rt, SA(NULL));
               rttrash++;