diff --git a/ospfd/ospf_snmp.c b/ospfd/ospf_snmp.c
index c8416de..1daf0d6 100644
--- a/ospfd/ospf_snmp.c
+++ b/ospfd/ospf_snmp.c
@@ -704,6 +704,10 @@
   struct ospf_area *area;
   struct in_addr addr;
 
+  if (smux_header_table(v, name, length, exact, var_len, write_method)
+      == MATCH_FAILED)
+    return NULL;
+
   memset (&addr, 0, sizeof (struct in_addr));
 
   area = ospfAreaLookup (v, name, length, &addr, exact);
@@ -847,6 +851,10 @@
   struct ospf_area *area;
   struct in_addr addr;
 
+  if (smux_header_table(v, name, length, exact, var_len, write_method)
+      == MATCH_FAILED)
+    return NULL;
+
   memset (&addr, 0, sizeof (struct in_addr));
 
   area = ospfStubAreaLookup (v, name, length, &addr, exact);
@@ -1078,6 +1086,10 @@
   struct in_addr router_id;
   struct ospf *ospf;
 
+  if (smux_header_table(v, name, length, exact, var_len, write_method)
+      == MATCH_FAILED)
+    return NULL;
+
   /* INDEX { ospfLsdbAreaId, ospfLsdbType,
      ospfLsdbLsid, ospfLsdbRouterId } */
 
@@ -1240,6 +1252,10 @@
   struct in_addr mask;
   struct ospf *ospf;
   
+  if (smux_header_table(v, name, length, exact, var_len, write_method)
+      == MATCH_FAILED)
+    return NULL;
+
   /* Check OSPF instance. */
   ospf = ospf_lookup ();
   if (ospf == NULL)
@@ -1344,6 +1360,10 @@
   struct in_addr addr;
   struct ospf *ospf;
 
+  if (smux_header_table(v, name, length, exact, var_len, write_method)
+      == MATCH_FAILED)
+    return NULL;
+
   /* Check OSPF instance. */
   ospf = ospf_lookup ();
   if (ospf == NULL)
@@ -1679,6 +1699,10 @@
   struct ospf_interface *oi;
   struct ospf *ospf;
 
+  if (smux_header_table(v, name, length, exact, var_len, write_method)
+      == MATCH_FAILED)
+    return NULL;
+
   ifindex = 0;
   memset (&ifaddr, 0, sizeof (struct in_addr));
 
@@ -1847,6 +1871,10 @@
   struct ospf_interface *oi;
   struct ospf *ospf;
 
+  if (smux_header_table(v, name, length, exact, var_len, write_method)
+      == MATCH_FAILED)
+    return NULL;
+
   ifindex = 0;
   memset (&ifaddr, 0, sizeof (struct in_addr));
 
@@ -2039,6 +2067,10 @@
   struct in_addr area_id;
   struct in_addr neighbor;
 
+  if (smux_header_table(v, name, length, exact, var_len, write_method)
+      == MATCH_FAILED)
+    return NULL;
+
   memset (&area_id, 0, sizeof (struct in_addr));
   memset (&neighbor, 0, sizeof (struct in_addr));
 
@@ -2272,6 +2304,10 @@
   struct ospf_neighbor *nbr;
   struct ospf_interface *oi;
 
+  if (smux_header_table(v, name, length, exact, var_len, write_method)
+      == MATCH_FAILED)
+    return NULL;
+
   memset (&nbr_addr, 0, sizeof (struct in_addr));
   ifindex = 0;
   
@@ -2334,6 +2370,10 @@
   struct in_addr neighbor;
   struct ospf *ospf;
 
+  if (smux_header_table(v, name, length, exact, var_len, write_method)
+      == MATCH_FAILED)
+    return NULL;
+
   memset (&area_id, 0, sizeof (struct in_addr));
   memset (&neighbor, 0, sizeof (struct in_addr));
 
@@ -2482,6 +2522,10 @@
   struct in_addr router_id;
   struct ospf *ospf;
 
+  if (smux_header_table(v, name, length, exact, var_len, write_method)
+      == MATCH_FAILED)
+    return NULL;
+
   type = OSPF_AS_EXTERNAL_LSA;
   memset (&ls_id, 0, sizeof (struct in_addr));
   memset (&router_id, 0, sizeof (struct in_addr));
@@ -2533,6 +2577,10 @@
 ospfAreaAggregateEntry (struct variable *v, oid *name, size_t *length,
 			int exact, size_t *var_len, WriteMethod **write_method)
 {
+  if (smux_header_table(v, name, length, exact, var_len, write_method)
+      == MATCH_FAILED)
+    return NULL;
+
   /* Return the current value of the variable */
   switch (v->magic) 
     {
