diff --git a/zebra/zebra_vty.c b/zebra/zebra_vty.c
index bc453de..a4e6af7 100644
--- a/zebra/zebra_vty.c
+++ b/zebra/zebra_vty.c
@@ -27,6 +27,7 @@
 #include "command.h"
 #include "table.h"
 #include "rib.h"
+#include "vrf.h"
 
 #include "zebra/zserv.h"
 
@@ -989,7 +990,7 @@
   struct rib *rib;
   int first = 1;
 
-  table = vrf_table (AFI_IP, safi, 0);
+  table = zebra_vrf_table (AFI_IP, safi, VRF_DEFAULT);
   if (! table)
     return CMD_SUCCESS;
 
@@ -1030,7 +1031,7 @@
       return CMD_WARNING;
     }
   
-  table = vrf_table (AFI_IP, SAFI_UNICAST, 0);
+  table = zebra_vrf_table (AFI_IP, SAFI_UNICAST, VRF_DEFAULT);
   if (! table)
     return CMD_SUCCESS;
 
@@ -1063,7 +1064,7 @@
   u_int32_t addr; 
   int first = 1;
 
-  table = vrf_table (AFI_IP, SAFI_UNICAST, 0);
+  table = zebra_vrf_table (AFI_IP, SAFI_UNICAST, VRF_DEFAULT);
   if (! table)
     return CMD_SUCCESS;
 
@@ -1109,7 +1110,7 @@
       return CMD_WARNING;
     }
   
-  table = vrf_table (AFI_IP, SAFI_UNICAST, 0);
+  table = zebra_vrf_table (AFI_IP, SAFI_UNICAST, VRF_DEFAULT);
   if (! table)
     return CMD_SUCCESS;
 
@@ -1148,7 +1149,7 @@
       return CMD_WARNING;
     }
 
-  table = vrf_table (AFI_IP, SAFI_UNICAST, 0);
+  table = zebra_vrf_table (AFI_IP, SAFI_UNICAST, VRF_DEFAULT);
   if (! table)
     return CMD_SUCCESS;
 
@@ -1186,7 +1187,7 @@
       return CMD_WARNING;
     }
 
-  table = vrf_table (AFI_IP, SAFI_UNICAST, 0);
+  table = zebra_vrf_table (AFI_IP, SAFI_UNICAST, VRF_DEFAULT);
   if (! table)
     return CMD_SUCCESS;
 
@@ -1359,7 +1360,7 @@
 {
   struct route_table *table;
 
-  table = vrf_table (AFI_IP, SAFI_UNICAST, 0);
+  table = zebra_vrf_table (AFI_IP, SAFI_UNICAST, VRF_DEFAULT);
   if (! table)
     return CMD_SUCCESS;
 
@@ -1380,7 +1381,7 @@
 {
   struct route_table *table;
 
-  table = vrf_table (AFI_IP, SAFI_UNICAST, 0);
+  table = zebra_vrf_table (AFI_IP, SAFI_UNICAST, VRF_DEFAULT);
   if (! table)
     return CMD_SUCCESS;
 
@@ -1402,7 +1403,7 @@
   write = 0;
 
   /* Lookup table.  */
-  stable = vrf_static_table (AFI_IP, safi, 0);
+  stable = zebra_vrf_static_table (AFI_IP, safi, VRF_DEFAULT);
   if (! stable)
     return -1;
 
@@ -1489,7 +1490,7 @@
   struct rib *rib;
   int first = 1;
 
-  table = vrf_table (AFI_IP, SAFI_MULTICAST, 0);
+  table = zebra_vrf_table (AFI_IP, SAFI_MULTICAST, VRF_DEFAULT);
   if (! table)
     return CMD_SUCCESS;
 
@@ -1826,7 +1827,7 @@
   struct rib *rib;
   int first = 1;
 
-  table = vrf_table (AFI_IP6, SAFI_UNICAST, 0);
+  table = zebra_vrf_table (AFI_IP6, SAFI_UNICAST, VRF_DEFAULT);
   if (! table)
     return CMD_SUCCESS;
 
@@ -1860,7 +1861,7 @@
   int ret;
   int first = 1;
 
-  table = vrf_table (AFI_IP6, SAFI_UNICAST, 0);
+  table = zebra_vrf_table (AFI_IP6, SAFI_UNICAST, VRF_DEFAULT);
   if (! table)
     return CMD_SUCCESS;
 
@@ -1907,7 +1908,7 @@
       return CMD_WARNING;
     }
   
-  table = vrf_table (AFI_IP6, SAFI_UNICAST, 0);
+  table = zebra_vrf_table (AFI_IP6, SAFI_UNICAST, VRF_DEFAULT);
   if (! table)
     return CMD_SUCCESS;
 
@@ -1946,7 +1947,7 @@
       return CMD_WARNING;
     }
 
-  table = vrf_table (AFI_IP6, SAFI_UNICAST, 0);
+  table = zebra_vrf_table (AFI_IP6, SAFI_UNICAST, VRF_DEFAULT);
   if (! table)
     return CMD_SUCCESS;
 
@@ -1984,7 +1985,7 @@
       return CMD_WARNING;
     }
 
-  table = vrf_table (AFI_IP6, SAFI_UNICAST, 0);
+  table = zebra_vrf_table (AFI_IP6, SAFI_UNICAST, VRF_DEFAULT);
   if (! table)
     return CMD_SUCCESS;
 
@@ -2015,7 +2016,7 @@
 {
   struct route_table *table;
 
-  table = vrf_table (AFI_IP6, SAFI_UNICAST, 0);
+  table = zebra_vrf_table (AFI_IP6, SAFI_UNICAST, VRF_DEFAULT);
   if (! table)
     return CMD_SUCCESS;
 
@@ -2036,7 +2037,7 @@
 {
   struct route_table *table;
 
-  table = vrf_table (AFI_IP6, SAFI_UNICAST, 0);
+  table = zebra_vrf_table (AFI_IP6, SAFI_UNICAST, VRF_DEFAULT);
   if (! table)
     return CMD_SUCCESS;
 
@@ -2062,7 +2063,7 @@
   struct rib *rib;
   int first = 1;
 
-  table = vrf_table (AFI_IP6, SAFI_MULTICAST, 0);
+  table = zebra_vrf_table (AFI_IP6, SAFI_MULTICAST, VRF_DEFAULT);
   if (! table)
     return CMD_SUCCESS;
 
@@ -2093,7 +2094,7 @@
   write = 0;
 
   /* Lookup table.  */
-  stable = vrf_static_table (AFI_IP6, SAFI_UNICAST, 0);
+  stable = zebra_vrf_static_table (AFI_IP6, SAFI_UNICAST, VRF_DEFAULT);
   if (! stable)
     return -1;
 
