--- zebra-0.85/zebra/rt_netlink.c	Fri Jan 14 15:53:32 2000
+++ zebra-0.85-sunbeam/zebra/rt_netlink.c	Tue Mar 28 12:28:07 2000
@@ -324,6 +324,7 @@
   struct rtattr *tb [IFA_MAX + 1];
   struct interface *ifp;
   void *addr = NULL;
+  void *ptpaddr = NULL;
   void *broad = NULL;
 
   ifa = NLMSG_DATA (h);
@@ -366,8 +367,12 @@
       if (tb[IFA_LOCAL])
 	{
 	  addr = RTA_DATA (tb[IFA_LOCAL]);
-	  if (tb[IFA_ADDRESS])
+	  if (tb[IFA_ADDRESS]) 
+	{
 	    broad = RTA_DATA (tb[IFA_ADDRESS]);
+		zlog(NULL,LOG_INFO,"setting ptpaddr");
+		ptpaddr = RTA_DATA (tb[IFA_ADDRESS]);
+	}
 	  else
 	    broad = NULL;
 	}
@@ -401,14 +406,30 @@
   /* Register interface address to the interface. */
   if (ifa->ifa_family == AF_INET)
     {
-      if (h->nlmsg_type == RTM_NEWADDR)
+      if (h->nlmsg_type == RTM_NEWADDR) {
+
 	connected_add_ipv4 (ifp, 
 			    (struct in_addr *) addr, ifa->ifa_prefixlen, 
 			    (struct in_addr *) broad);
-      else
+	if (ptpaddr) {
+	connected_add_ipv4 (ifp,
+			(struct in_addr *) ptpaddr, ifa->ifa_prefixlen,
+			(struct in_addr *) broad);
+	} 
+	
+	}
+      else {
+
 	connected_delete_ipv4 (ifp, 
 			       (struct in_addr *) addr, ifa->ifa_prefixlen, 
 			       (struct in_addr *) broad);
+	if (ptpaddr) {
+	connected_delete_ipv4 (ifp,
+			(struct in_addr *) ptpaddr, ifa->ifa_prefixlen,
+			(struct in_addr *) broad);
+	}
+ 
+      }
     }
 #ifdef HAVE_IPV6
   if (ifa->ifa_family == AF_INET6)
