diff --git a/lib/if.c b/lib/if.c
index 3a1f9b4..f17e508 100644
--- a/lib/if.c
+++ b/lib/if.c
@@ -454,12 +454,12 @@
   struct connected *c __attribute__((unused));
 
   for (ALL_LIST_ELEMENTS_RO (ifp->connected, node, c))
-    zlog_info ("Interface %s index %d metric %d mtu %d "
+    zlog_info ("Interface %s vrf %u index %d metric %d mtu %d "
 #ifdef HAVE_IPV6
                "mtu6 %d "
 #endif /* HAVE_IPV6 */
                "%s",
-               ifp->name, ifp->ifindex, ifp->metric, ifp->mtu, 
+               ifp->name, ifp->vrf_id, ifp->ifindex, ifp->metric, ifp->mtu,
 #ifdef HAVE_IPV6
                ifp->mtu6,
 #endif /* HAVE_IPV6 */
@@ -675,8 +675,8 @@
   ifp = connected->ifp;
   p = connected->address;
 
-  snprintf (logbuf, BUFSIZ, "%s interface %s %s %s/%d ", 
-	    str, ifp->name, prefix_family_str (p),
+  snprintf (logbuf, BUFSIZ, "%s interface %s vrf %u %s %s/%d ",
+	    str, ifp->name, ifp->vrf_id, prefix_family_str (p),
 	    inet_ntop (p->family, &p->u.prefix, buf, BUFSIZ),
 	    p->prefixlen);
 
diff --git a/lib/if.h b/lib/if.h
index 8081be8..029f57f 100644
--- a/lib/if.h
+++ b/lib/if.h
@@ -139,6 +139,8 @@
 #ifdef HAVE_NET_RT_IFLIST
   struct if_data stats;
 #endif /* HAVE_NET_RT_IFLIST */
+
+  vrf_id_t vrf_id;
 };
 
 /* Connected address structure. */
diff --git a/zebra/interface.c b/zebra/interface.c
index 80eb6aa..49d40ba 100644
--- a/zebra/interface.c
+++ b/zebra/interface.c
@@ -381,21 +381,23 @@
       if (if_data && if_data->shutdown == IF_ZEBRA_SHUTDOWN_ON)
 	{
 	  if (IS_ZEBRA_DEBUG_KERNEL)
-	    zlog_debug ("interface %s index %d is shutdown. Won't wake it up.",
-			ifp->name, ifp->ifindex);
+	    zlog_debug ("interface %s vrf %u index %d is shutdown. "
+			"Won't wake it up.",
+			ifp->name, ifp->vrf_id, ifp->ifindex);
 	  return;
 	}
 
       if_addr_wakeup (ifp);
 
       if (IS_ZEBRA_DEBUG_KERNEL)
-	zlog_debug ("interface %s index %d becomes active.", 
-		    ifp->name, ifp->ifindex);
+	zlog_debug ("interface %s vrf %u index %d becomes active.",
+		    ifp->name, ifp->vrf_id, ifp->ifindex);
     }
   else
     {
       if (IS_ZEBRA_DEBUG_KERNEL)
-	zlog_debug ("interface %s index %d is added.", ifp->name, ifp->ifindex);
+	zlog_debug ("interface %s vrf %u index %d is added.",
+		    ifp->name, ifp->vrf_id, ifp->ifindex);
     }
 }
 
@@ -412,8 +414,8 @@
 
   if (if_is_up(ifp))
     {
-      zlog_err ("interface %s index %d is still up while being deleted.",
-	    ifp->name, ifp->ifindex);
+      zlog_err ("interface %s vrf %u index %d is still up while being deleted.",
+                ifp->name, ifp->vrf_id, ifp->ifindex);
       return;
     }
 
@@ -421,8 +423,8 @@
   UNSET_FLAG (ifp->status, ZEBRA_INTERFACE_ACTIVE);
   
   if (IS_ZEBRA_DEBUG_KERNEL)
-    zlog_debug ("interface %s index %d is now inactive.",
-	       ifp->name, ifp->ifindex);
+    zlog_debug ("interface %s vrf %u index %d is now inactive.",
+                ifp->name, ifp->vrf_id, ifp->ifindex);
 
   /* Delete connected routes from the kernel. */
   if (ifp->connected)
@@ -726,6 +728,8 @@
     vty_out (vty, "down%s", VTY_NEWLINE);
   }
 
+  vty_out (vty, "  vrf: %u%s", ifp->vrf_id, VTY_NEWLINE);
+
   if (ifp->desc)
     vty_out (vty, "  Description: %s%s", ifp->desc,
 	     VTY_NEWLINE);
