diff --git a/src/vnet/session/session_lookup.c b/src/vnet/session/session_lookup.c
index 604344a..b1c8fbb 100644
--- a/src/vnet/session/session_lookup.c
+++ b/src/vnet/session/session_lookup.c
@@ -654,13 +654,13 @@
 
 session_t *
 session_lookup_listener4 (u32 fib_index, ip4_address_t * lcl, u16 lcl_port,
-			  u8 proto)
+			  u8 proto, u8 use_wildcard)
 {
   session_table_t *st;
   st = session_table_get_for_fib_index (FIB_PROTOCOL_IP4, fib_index);
   if (!st)
     return 0;
-  return session_lookup_listener4_i (st, lcl, lcl_port, proto, 0);
+  return session_lookup_listener4_i (st, lcl, lcl_port, proto, use_wildcard);
 }
 
 static session_t *
@@ -697,13 +697,13 @@
 
 session_t *
 session_lookup_listener6 (u32 fib_index, ip6_address_t * lcl, u16 lcl_port,
-			  u8 proto)
+			  u8 proto, u8 use_wildcard)
 {
   session_table_t *st;
   st = session_table_get_for_fib_index (FIB_PROTOCOL_IP6, fib_index);
   if (!st)
     return 0;
-  return session_lookup_listener6_i (st, lcl, lcl_port, proto, 1);
+  return session_lookup_listener6_i (st, lcl, lcl_port, proto, use_wildcard);
 }
 
 /**
diff --git a/src/vnet/session/session_lookup.h b/src/vnet/session/session_lookup.h
index 63ba6c3..c2e6446 100644
--- a/src/vnet/session/session_lookup.h
+++ b/src/vnet/session/session_lookup.h
@@ -61,10 +61,10 @@
 						    u16 rmt_port, u8 proto);
 session_t *session_lookup_listener4 (u32 fib_index,
 				     ip4_address_t * lcl, u16 lcl_port,
-				     u8 proto);
+				     u8 proto, u8 use_wildcard);
 session_t *session_lookup_listener6 (u32 fib_index,
 				     ip6_address_t * lcl, u16 lcl_port,
-				     u8 proto);
+				     u8 proto, u8 use_wildcard);
 session_t *session_lookup_listener (u32 table_index,
 				    session_endpoint_t * sep);
 session_t *session_lookup_listener_wildcard (u32 table_index,
