diff --git a/src/tests/vnet/session/tcp_echo.c b/src/tests/vnet/session/tcp_echo.c
index 435a414..3531a53 100644
--- a/src/tests/vnet/session/tcp_echo.c
+++ b/src/tests/vnet/session/tcp_echo.c
@@ -532,15 +532,6 @@
   while (n_to_read > 0);
 }
 
-void
-client_handle_rx (echo_main_t * em, session_event_t * e, u8 * rx_buf)
-{
-  echo_session_t *s;
-
-  s = pool_elt_at_index (em->sessions, e->fifo->client_session_index);
-  recv_data_chunk (em, s, rx_buf);
-}
-
 static void
 send_data_chunk (echo_main_t * em, echo_session_t * s)
 {
@@ -596,42 +587,6 @@
   pthread_exit (0);
 }
 
-/*
- * Rx thread that handles all connections.
- *
- * Not used.
- */
-void *
-client_rx_thread_fn (void *arg)
-{
-  session_event_t _e, *e = &_e;
-  echo_main_t *em = &echo_main;
-  static u8 *rx_buf = 0;
-  svm_msg_q_msg_t msg;
-
-  vec_validate (rx_buf, 1 << 20);
-
-  while (!em->time_to_stop && em->state != STATE_READY)
-    ;
-
-  while (!em->time_to_stop)
-    {
-      svm_msg_q_sub (em->our_event_queue, &msg, SVM_Q_WAIT, 0);
-      e = svm_msg_q_msg_data (em->our_event_queue, &msg);
-      switch (e->event_type)
-	{
-	case FIFO_EVENT_APP_RX:
-	  client_handle_rx (em, e, rx_buf);
-	  break;
-	default:
-	  clib_warning ("unknown event type %d", e->event_type);
-	  break;
-	}
-      svm_msg_q_free_msg (em->our_event_queue, &msg);
-    }
-  pthread_exit (0);
-}
-
 void
 client_send_connect (echo_main_t * em)
 {
@@ -1101,7 +1056,7 @@
   u32 offset, to_dequeue;
   echo_session_t *s;
 
-  s = pool_elt_at_index (em->sessions, e->fifo->client_session_index);
+  s = pool_elt_at_index (em->sessions, e->session_index);
 
   /* Clear event only once. Otherwise, if we do it in the loop by calling
    * app_recv_stream, we may end up with a lot of unhandled rx events on the
@@ -1161,7 +1116,7 @@
       e = svm_msg_q_msg_data (em->our_event_queue, &msg);
       switch (e->event_type)
 	{
-	case FIFO_EVENT_APP_RX:
+	case SESSION_IO_EVT_RX:
 	  server_handle_rx (em, e);
 	  break;
 	default:
diff --git a/src/tests/vnet/session/udp_echo.c b/src/tests/vnet/session/udp_echo.c
index 9fda73d..4fd6c86 100644
--- a/src/tests/vnet/session/udp_echo.c
+++ b/src/tests/vnet/session/udp_echo.c
@@ -1014,7 +1014,8 @@
 
 	  /* If event wasn't set, add one */
 	  if (svm_fifo_set_event (tx_fifo))
-	    app_send_io_evt_to_vpp (session->vpp_evt_q, tx_fifo,
+	    app_send_io_evt_to_vpp (session->vpp_evt_q,
+				    tx_fifo->master_session_index,
 				    SESSION_IO_EVT_TX, SVM_Q_WAIT);
 	}
     }
@@ -1043,7 +1044,7 @@
       switch (e->event_type)
 	{
 	case SESSION_IO_EVT_RX:
-	  server_handle_fifo_event_rx (utm, e->fifo->client_session_index);
+	  server_handle_fifo_event_rx (utm, e->session_index);
 	  break;
 
 	default:
