diff -ruN --exclude debian bird-1.0.11-orig/sysdep/linux/netlink/netlink.Y bird-1.0.11-prod/sysdep/linux/netlink/netlink.Y
--- bird-1.0.11-orig/sysdep/linux/netlink/netlink.Y	2000-06-18 13:49:32.000000000 -0600
+++ bird-1.0.11-prod/sysdep/linux/netlink/netlink.Y	2008-02-21 13:13:30.000000000 -0600
@@ -21,9 +21,9 @@
 #ifndef IPV6
 	if ($3 <= 0 || $3 >= NL_NUM_TABLES)
 	  cf_error("Kernel routing table number out of range");
-#else
+/* #else
 	if ($3 != 254)
-	  cf_error("Linux implementation of IPv6 doesn't support multiple routing tables");
+	  cf_error("Linux implementation of IPv6 doesn't support multiple routing tables"); */
 #endif
 	THIS_KRT->scan.table_id = $3;
    }
diff -ruN --exclude debian bird-1.0.11-orig/sysdep/unix/krt.c bird-1.0.11-prod/sysdep/unix/krt.c
--- bird-1.0.11-orig/sysdep/unix/krt.c	2004-06-07 10:51:23.000000000 -0600
+++ bird-1.0.11-prod/sysdep/unix/krt.c	2008-01-23 18:34:20.000000000 -0600
@@ -767,10 +767,7 @@
 
   /* Start periodic routing table scanning */
 #ifdef CONFIG_ALL_TABLES_AT_ONCE
-  if (first)
-    krt_scan_timer = krt_start_timer(p);
-  else
-    tm_start(p->scan_timer, 0);
+  krt_scan_timer = krt_start_timer(p);
   p->scan_timer = krt_scan_timer;
 #else
   p->scan_timer = krt_start_timer(p);
