diff --git a/bgpd/bgpd.c b/bgpd/bgpd.c
index ef8fbe9..366ee43 100644
--- a/bgpd/bgpd.c
+++ b/bgpd/bgpd.c
@@ -2144,18 +2144,29 @@
   struct peer *peer;
   struct listnode *node, *nnode;
 
-  if (! bgp)
-    bgp = bgp_get_default ();
-
-  if (! bgp)
-    return NULL;
+  if (bgp != NULL)
+  {
+    for (ALL_LIST_ELEMENTS (bgp->peer, node, nnode, peer))
+    {
+      if (sockunion_same (&peer->su, su)
+	  && ! CHECK_FLAG (peer->sflags, PEER_STATUS_ACCEPT_PEER))
+	return peer;
+    }
+  }
+  else if (bm->bgp != NULL)
+  {
+    struct listnode *bgpnode, *nbgpnode;
   
+    for(ALL_LIST_ELEMENTS(bm->bgp, bgpnode, nbgpnode, bgp))
+    {
   for (ALL_LIST_ELEMENTS (bgp->peer, node, nnode, peer))
     {
       if (sockunion_same (&peer->su, su)
 	  && ! CHECK_FLAG (peer->sflags, PEER_STATUS_ACCEPT_PEER))
 	return peer;
     }
+    }
+  }
   return NULL;
 }
 
@@ -2165,12 +2176,14 @@
 {
   struct peer *peer;
   struct listnode *node, *nnode;
+  struct listnode *bgpnode, *nbgpnode;
   struct bgp *bgp;
 
-  bgp = bgp_get_default ();
-  if (! bgp)
+  if (! bm->bgp)
     return NULL;
 
+  for(ALL_LIST_ELEMENTS(bm->bgp, bgpnode, nbgpnode, bgp))
+  {
   for (ALL_LIST_ELEMENTS (bgp->peer, node, nnode, peer))
     {
       if (sockunion_same (&peer->su, su)
@@ -2183,6 +2196,7 @@
 	    *as = 1;
 	}
     }
+
   for (ALL_LIST_ELEMENTS (bgp->peer, node, nnode, peer))
     {
       if (sockunion_same (&peer->su, su)
@@ -2195,6 +2209,7 @@
 	    *as = 1;
 	}
     }
+  }
   return NULL;
 }
 
