diff --git a/src/vnet/ip/ip4_forward.c b/src/vnet/ip/ip4_forward.c
index 31b687d..5472428 100644
--- a/src/vnet/ip/ip4_forward.c
+++ b/src/vnet/ip/ip4_forward.c
@@ -1706,10 +1706,11 @@
 		     ip1->dst_address.as_u32 != 0xFFFFFFFF)
 		    ? IP4_ERROR_SRC_LOOKUP_MISS : error1);
 
+	skip_checks:
+
 	  next0 = lm->local_next_by_ip_protocol[proto0];
 	  next1 = lm->local_next_by_ip_protocol[proto1];
 
-	skip_checks:
 	  next0 =
 	    error0 != IP4_ERROR_UNKNOWN_PROTOCOL ? IP_LOCAL_NEXT_DROP : next0;
 	  next1 =
diff --git a/src/vnet/session/session.c b/src/vnet/session/session.c
index 422527e..b5a168c 100644
--- a/src/vnet/session/session.c
+++ b/src/vnet/session/session.c
@@ -22,6 +22,7 @@
 #include <vnet/dpo/load_balance.h>
 #include <vnet/fib/ip4_fib.h>
 #include <vnet/session/application.h>
+#include <vnet/tcp/tcp.h>
 
 /**
  * Per-type vector of transport protocol virtual function tables
@@ -1287,6 +1288,9 @@
 
   smm->is_enabled = 1;
 
+  /* Enable TCP transport */
+  vnet_tcp_enable_disable (vm, 1);
+
   return 0;
 }
 
@@ -1313,7 +1317,6 @@
   return 0;
 }
 
-
 clib_error_t *
 session_manager_main_init (vlib_main_t * vm)
 {
diff --git a/src/vnet/tcp/tcp.c b/src/vnet/tcp/tcp.c
index e5feaeb..69433e2 100644
--- a/src/vnet/tcp/tcp.c
+++ b/src/vnet/tcp/tcp.c
@@ -633,18 +633,15 @@
 }
 
 clib_error_t *
-tcp_init (vlib_main_t * vm)
+tcp_main_enable (vlib_main_t * vm)
 {
-  ip_main_t *im = &ip_main;
-  ip_protocol_info_t *pi;
   tcp_main_t *tm = vnet_get_tcp_main ();
+  ip_protocol_info_t *pi;
+  ip_main_t *im = &ip_main;
   vlib_thread_main_t *vtm = vlib_get_thread_main ();
   clib_error_t *error = 0;
   u32 num_threads;
 
-  tm->vlib_main = vm;
-  tm->vnet_main = vnet_get_main ();
-
   if ((error = vlib_call_init_function (vm, ip_main_init)))
     return error;
   if ((error = vlib_call_init_function (vm, ip4_lookup_init)))
@@ -697,6 +694,36 @@
   return error;
 }
 
+clib_error_t *
+vnet_tcp_enable_disable (vlib_main_t * vm, u8 is_en)
+{
+  if (is_en)
+    {
+      if (tcp_main.is_enabled)
+	return 0;
+
+      return tcp_main_enable (vm);
+    }
+  else
+    {
+      tcp_main.is_enabled = 0;
+    }
+
+  return 0;
+}
+
+clib_error_t *
+tcp_init (vlib_main_t * vm)
+{
+  tcp_main_t *tm = vnet_get_tcp_main ();
+
+  tm->vlib_main = vm;
+  tm->vnet_main = vnet_get_main ();
+  tm->is_enabled = 0;
+
+  return 0;
+}
+
 VLIB_INIT_FUNCTION (tcp_init);
 
 /*
diff --git a/src/vnet/tcp/tcp.h b/src/vnet/tcp/tcp.h
index 3560509..7d44343 100644
--- a/src/vnet/tcp/tcp.h
+++ b/src/vnet/tcp/tcp.h
@@ -304,6 +304,9 @@
   /* Congestion control algorithms registered */
   tcp_cc_algorithm_t *cc_algos;
 
+  /* Flag that indicates if stack is on or off */
+  u8 is_enabled;
+
   /* convenience */
   vlib_main_t *vlib_main;
   vnet_main_t *vnet_main;
@@ -323,6 +326,8 @@
   return &tcp_main;
 }
 
+clib_error_t *vnet_tcp_enable_disable (vlib_main_t * vm, u8 is_en);
+
 always_inline tcp_connection_t *
 tcp_connection_get (u32 conn_index, u32 thread_index)
 {
