diff -rupw parprouted-0.63/arp.c parprouted-0.63-1/arp.c
--- parprouted-0.63/arp.c	2004-05-23 14:06:31.000000000 +0200
+++ parprouted-0.63-1/arp.c	2005-03-13 16:10:18.000000000 +0100
@@ -366,7 +366,7 @@ void *arp(char *ifname) 
     do {
       pthread_testcancel();
       /* Sleep a bit in order not to overload the system */
-      usleep(300);
+      usleep(3000);
 
       if (arp_recv(sock, &frame) <= 0)
     	    continue;
diff -rupw parprouted-0.63/parprouted.c parprouted-0.63-1/parprouted.c
--- parprouted-0.63/parprouted.c	2004-01-30 02:45:43.000000000 +0100
+++ parprouted-0.63-1/parprouted.c	2005-03-20 09:14:35.000000000 +0100
@@ -93,7 +93,7 @@ void processarp(int cleanup) 
 
 	    /* added route to the kernel */
 	    if (snprintf(routecmd_str, ROUTE_CMD_LEN-1, 
-		     "/sbin/ip route add %s/32 metric 50 dev %s scope link",
+		     "/sbin/route add -host %s metric 50 dev %s",
 		     inet_ntoa(cur_entry->ipaddr_ia), cur_entry->ifname) > ROUTE_CMD_LEN-1) 
 	    {
 		syslog(LOG_INFO, "ip route command too large to fit in buffer!");
@@ -112,7 +112,7 @@ void processarp(int cleanup) 
 
 	    /* remove entry from arp table and remove route from kernel */
 	    if (snprintf(routecmd_str, ROUTE_CMD_LEN-1, 
-		     "/sbin/ip route del %s/32 metric 50 dev %s scope link",
+		     "/sbin/route del -host %s metric 50 dev %s",
 		     inet_ntoa(cur_entry->ipaddr_ia), cur_entry->ifname) > ROUTE_CMD_LEN-1) 
 	    {
 		syslog(LOG_INFO, "ip route command too large to fit in buffer!");
