diff --git a/lib/distribute.c b/lib/distribute.c
index 056cd40..7f84b80 100644
--- a/lib/distribute.c
+++ b/lib/distribute.c
@@ -304,6 +304,7 @@
        "Filter outgoing routing updates\n")
 {
   enum distribute_type type;
+  struct distribute *dist;
 
   /* Check of distribute list type. */
   if (strncmp (argv[1], "i", 1) == 0)
@@ -318,7 +319,7 @@
     }
 
   /* Get interface name corresponding distribute list. */
-  distribute_list_set (NULL, type, argv[0]);
+  dist = distribute_list_set (NULL, type, argv[0]);
 
   return CMD_SUCCESS;
 }
@@ -383,6 +384,7 @@
        "Interface name\n")
 {
   enum distribute_type type;
+  struct distribute *dist;
 
   /* Check of distribute list type. */
   if (strncmp (argv[1], "i", 1) == 0)
@@ -396,7 +398,7 @@
     }
 
   /* Get interface name corresponding distribute list. */
-  distribute_list_set (argv[2], type, argv[0]);
+  dist = distribute_list_set (argv[2], type, argv[0]);
 
   return CMD_SUCCESS;
 }       
@@ -461,6 +463,7 @@
        "Filter outgoing routing updates\n")
 {
   enum distribute_type type;
+  struct distribute *dist;
 
   /* Check of distribute list type. */
   if (strncmp (argv[1], "i", 1) == 0)
@@ -475,7 +478,7 @@
     }
 
   /* Get interface name corresponding distribute list. */
-  distribute_list_prefix_set (NULL, type, argv[0]);
+  dist = distribute_list_prefix_set (NULL, type, argv[0]);
 
   return CMD_SUCCESS;
 }       
@@ -543,6 +546,7 @@
        "Interface name\n")
 {
   enum distribute_type type;
+  struct distribute *dist;
 
   /* Check of distribute list type. */
   if (strncmp (argv[1], "i", 1) == 0)
@@ -557,7 +561,7 @@
     }
 
   /* Get interface name corresponding distribute list. */
-  distribute_list_prefix_set (argv[2], type, argv[0]);
+  dist = distribute_list_prefix_set (argv[2], type, argv[0]);
 
   return CMD_SUCCESS;
 }       
diff --git a/lib/if.c b/lib/if.c
index 41115b0..d14cfb9 100644
--- a/lib/if.c
+++ b/lib/if.c
@@ -426,6 +426,9 @@
 static void
 if_dump (const struct interface *ifp)
 {
+  struct listnode *node;
+  struct connected *c;
+
   zlog_info ("Interface %s index %d metric %d mtu %d "
 #ifdef HAVE_IPV6
              "mtu6 %d "
@@ -436,6 +439,9 @@
 	     ifp->mtu6,
 #endif /* HAVE_IPV6 */
 	     if_flag_dump (ifp->flags));
+  
+  for (ALL_LIST_ELEMENTS_RO (ifp->connected, node, c))
+    ;
 }
 
 /* Interface printing for all interface. */
diff --git a/lib/if_rmap.c b/lib/if_rmap.c
index b49d266..ddc62fd 100644
--- a/lib/if_rmap.c
+++ b/lib/if_rmap.c
@@ -212,6 +212,7 @@
        "Route map interface name\n")
 {
   enum if_rmap_type type;
+  struct if_rmap *if_rmap;
 
   if (strncmp (argv[1], "i", 1) == 0)
     type = IF_RMAP_IN;
@@ -223,7 +224,7 @@
       return CMD_WARNING;
     }
 
-  if_rmap_set (argv[2], type, argv[0]);
+  if_rmap = if_rmap_set (argv[2], type, argv[0]);
 
   return CMD_SUCCESS;
 }      
diff --git a/lib/vty.c b/lib/vty.c
index 83bd678..d9eb921 100644
--- a/lib/vty.c
+++ b/lib/vty.c
@@ -1685,6 +1685,7 @@
 vty_accept (struct thread *thread)
 {
   int vty_sock;
+  struct vty *vty;
   union sockunion su;
   int ret;
   unsigned int on;
@@ -1769,7 +1770,7 @@
   if (bufp)
     XFREE (MTYPE_TMP, bufp);
 
-  vty_create (vty_sock, &su);
+  vty = vty_create (vty_sock, &su);
 
   return 0;
 }
