diff --git a/pimd/COMMANDS b/pimd/COMMANDS
index 6210bb4..425ac82 100644
--- a/pimd/COMMANDS
+++ b/pimd/COMMANDS
@@ -1,10 +1,15 @@
 # $QuaggaId: $Format:%an, %ai, %h$ $
 
 global configuration commands:
+       pimd:
        ip multicast-routing	Enable IP multicast forwarding
        ip ssmpingd		Enable ssmpingd operation
 
+       zebra:
+       ip mroute		Configure static unicast route into MRIB for multicast RPF lookup
+
 interface configuration commands:
+       pimd:
        ip igmp						Enable IGMP operation
        ip igmp join					IGMP join multicast group
        ip igmp query-interval <1-1800>			IGMP host query interval
@@ -13,6 +18,7 @@
        ip pim ssm					Enable PIM SSM operation
 
 verification commands:
+       pimd:
        show ip igmp interface			IGMP interface information
        show ip igmp join			IGMP static join information
        show ip igmp parameters			IGMP parameters information
@@ -44,7 +50,11 @@
        show ip rib				IP unicast routing table
        show ip ssmpingd				ssmpingd operation
 
+       zebra:
+       show ip rpf				Display RPF information for multicast source
+
 debug commands:
+       pimd:
        clear ip interfaces		Reset interfaces
        clear ip igmp interfaces		Reset IGMP interfaces
        clear ip mroute                  Reset multicast routes
@@ -65,6 +75,7 @@
        test pim receive upcall   	Test reception of kernel upcall
 
 statistics commands:
+       pimd:
        show memory pim		PIM memory statistics
 
 -x-
diff --git a/pimd/pim_igmpv3.c b/pimd/pim_igmpv3.c
index 4be52d6..3da1dd1 100644
--- a/pimd/pim_igmpv3.c
+++ b/pimd/pim_igmpv3.c
@@ -529,12 +529,9 @@
 		  int num_sources, struct in_addr *sources)
 {
   struct interface *ifp = igmp->interface;
-  struct pim_interface *pim_ifp;
   struct igmp_group *group;
   int    i;
 
-  pim_ifp = ifp->info;
-
   /* non-existant group is created as INCLUDE {empty} */
   group = igmp_add_group_by_addr(igmp, group_addr, ifp->name);
   if (!group) {
@@ -673,14 +670,11 @@
 			int num_sources, struct in_addr *sources)
 {
   struct interface *ifp = igmp->interface;
-  struct pim_interface *pim_ifp;
   struct igmp_group *group;
 
   on_trace(__PRETTY_FUNCTION__,
 	   ifp, from, group_addr, num_sources, sources);
 
-  pim_ifp = ifp->info;
-
   /* non-existant group is created as INCLUDE {empty} */
   group = igmp_add_group_by_addr(igmp, group_addr, ifp->name);
   if (!group) {
@@ -800,14 +794,11 @@
 			int num_sources, struct in_addr *sources)
 {
   struct interface *ifp = igmp->interface;
-  struct pim_interface *pim_ifp;
   struct igmp_group *group;
 
   on_trace(__PRETTY_FUNCTION__,
 	   ifp, from, group_addr, num_sources, sources);
 
-  pim_ifp = ifp->info;
-
   /* non-existant group is created as INCLUDE {empty} */
   group = igmp_add_group_by_addr(igmp, group_addr, ifp->name);
   if (!group) {
@@ -955,14 +946,11 @@
 			int num_sources, struct in_addr *sources)
 {
   struct interface *ifp = igmp->interface;
-  struct pim_interface *pim_ifp;
   struct igmp_group *group;
 
   on_trace(__PRETTY_FUNCTION__,
 	   ifp, from, group_addr, num_sources, sources);
 
-  pim_ifp = ifp->info;
-
   /* non-existant group is created as INCLUDE {empty} */
   group = igmp_add_group_by_addr(igmp, group_addr, ifp->name);
   if (!group) {
@@ -1480,14 +1468,11 @@
 			 int num_sources, struct in_addr *sources)
 {
   struct interface *ifp = igmp->interface;
-  struct pim_interface *pim_ifp;
   struct igmp_group *group;
 
   on_trace(__PRETTY_FUNCTION__,
 	   ifp, from, group_addr, num_sources, sources);
 
-  pim_ifp = ifp->info;
-
   /* non-existant group is created as INCLUDE {empty} */
   group = igmp_add_group_by_addr(igmp, group_addr, ifp->name);
   if (!group) {
diff --git a/pimd/pim_upstream.c b/pimd/pim_upstream.c
index 6702ca1..d02f915 100644
--- a/pimd/pim_upstream.c
+++ b/pimd/pim_upstream.c
@@ -256,7 +256,6 @@
   struct interface     *ifp;
   struct pim_interface *pim_ifp;
   struct pim_ifchannel *ch;
-  struct in_addr        ifaddr;
 
   /* scan all interfaces */
   for (ALL_LIST_ELEMENTS(iflist, ifnode, ifnextnode, ifp)) {
@@ -264,8 +263,6 @@
     if (!pim_ifp)
       continue;
 
-    ifaddr = pim_ifp->primary_address;
-
     /* scan per-interface (S,G) state */
     for (ALL_LIST_ELEMENTS(pim_ifp->pim_ifchannel_list, chnode, chnextnode, ch)) {
 
