diff --git a/lib/if.c b/lib/if.c
index ce3595d..e1a1839 100644
--- a/lib/if.c
+++ b/lib/if.c
@@ -189,11 +189,13 @@
   listnode node;
   struct prefix addr;
   struct prefix best;
+  struct prefix peer;
   listnode cnode;
   struct interface *ifp;
   struct prefix *p;
   struct connected *c;
   struct interface *match;
+  int prefixlen;
 
   /* Zero structures - get rid of rubbish from stack */
   memset(&addr, 0, sizeof(addr));
@@ -212,34 +214,24 @@
       for (cnode = listhead (ifp->connected); cnode; nextnode (cnode))
 	{
 	  c = getdata (cnode);
+	  p = c->address;
 
-	  if (if_is_pointopoint (ifp))
+	  if (p->family == AF_INET)
 	    {
-	      p = c->address;
+	      prefixlen = p->prefixlen;
 
-	      if (p && p->family == AF_INET)
+	      if (if_is_pointopoint (ifp) ||
+		  prefixlen >= IPV4_MAX_PREFIXLEN - 1)
 		{
-#ifdef OLD_RIB	 /* PTP  links are conventionally identified 
-		     by the address of the far end - MAG */
-		  if (IPV4_ADDR_SAME (&p->u.prefix4, &src))
-		    return ifp;
-#endif
-		  p = c->destination;
-		  if (p && IPV4_ADDR_SAME (&p->u.prefix4, &src))
-		    return ifp;
+		  peer = *c->destination;
+		  peer.prefixlen = prefixlen;
+		  p = &peer;
 		}
-	    }
-	  else
-	    {
-	      p = c->address;
 
-	      if (p->family == AF_INET)
+	      if (prefix_match (p, &addr) && prefixlen > best.prefixlen)
 		{
-		  if (prefix_match (p, &addr) && p->prefixlen > best.prefixlen)
-		    {
-		      best = *p;
-		      match = ifp;
-		    }
+		  best = *p;
+		  match = ifp;
 		}
 	    }
 	}
