diff --git a/zebra/zebra_vty.c b/zebra/zebra_vty.c
index a4e6af7..78e7366 100644
--- a/zebra/zebra_vty.c
+++ b/zebra/zebra_vty.c
@@ -285,7 +285,7 @@
       return CMD_WARNING;
     }
 
-  rib = rib_match_ipv4_multicast (addr, &rn);
+  rib = rib_match_ipv4_multicast (addr, &rn, VRF_DEFAULT);
 
   if (rib)
     vty_show_ip_route_detail (vty, rn, 1);
@@ -771,7 +771,8 @@
             case NEXTHOP_TYPE_IPV4_IFINDEX:
               vty_out (vty, " %s", inet_ntoa (nexthop->gate.ipv4));
               if (nexthop->ifindex)
-                vty_out (vty, ", via %s", ifindex2ifname (nexthop->ifindex));
+                vty_out (vty, ", via %s",
+                         ifindex2ifname_vrf (nexthop->ifindex, rib->vrf_id));
               break;
             case NEXTHOP_TYPE_IPV6:
             case NEXTHOP_TYPE_IPV6_IFINDEX:
@@ -781,11 +782,12 @@
               if (nexthop->type == NEXTHOP_TYPE_IPV6_IFNAME)
                 vty_out (vty, ", %s", nexthop->ifname);
               else if (nexthop->ifindex)
-                vty_out (vty, ", via %s", ifindex2ifname (nexthop->ifindex));
+                vty_out (vty, ", via %s",
+                         ifindex2ifname_vrf (nexthop->ifindex, rib->vrf_id));
               break;
             case NEXTHOP_TYPE_IFINDEX:
               vty_out (vty, " directly connected, %s",
-                       ifindex2ifname (nexthop->ifindex));
+                       ifindex2ifname_vrf (nexthop->ifindex, rib->vrf_id));
               break;
             case NEXTHOP_TYPE_IFNAME:
               vty_out (vty, " directly connected, %s", nexthop->ifname);
@@ -876,7 +878,8 @@
         case NEXTHOP_TYPE_IPV4_IFINDEX:
           vty_out (vty, " via %s", inet_ntoa (nexthop->gate.ipv4));
           if (nexthop->ifindex)
-            vty_out (vty, ", %s", ifindex2ifname (nexthop->ifindex));
+            vty_out (vty, ", %s",
+                     ifindex2ifname_vrf (nexthop->ifindex, rib->vrf_id));
           break;
         case NEXTHOP_TYPE_IPV6:
         case NEXTHOP_TYPE_IPV6_IFINDEX:
@@ -886,11 +889,12 @@
           if (nexthop->type == NEXTHOP_TYPE_IPV6_IFNAME)
             vty_out (vty, ", %s", nexthop->ifname);
           else if (nexthop->ifindex)
-            vty_out (vty, ", %s", ifindex2ifname (nexthop->ifindex));
+            vty_out (vty, ", %s",
+                     ifindex2ifname_vrf (nexthop->ifindex, rib->vrf_id));
           break;
         case NEXTHOP_TYPE_IFINDEX:
           vty_out (vty, " is directly connected, %s",
-                   ifindex2ifname (nexthop->ifindex));
+                   ifindex2ifname_vrf (nexthop->ifindex, rib->vrf_id));
           break;
         case NEXTHOP_TYPE_IFNAME:
           vty_out (vty, " is directly connected, %s", nexthop->ifname);
