diff --git a/src/vnet/session/application.c b/src/vnet/session/application.c
index 0b5c951..c62496e 100644
--- a/src/vnet/session/application.c
+++ b/src/vnet/session/application.c
@@ -711,7 +711,7 @@
   sm = segment_manager_alloc ();
   sm->app_wrk_index = app_wrk->wrk_index;
 
-  if ((rv = segment_manager_init (sm)))
+  if ((rv = segment_manager_init_first (sm)))
     {
       app_worker_free (app_wrk);
       return rv;
diff --git a/src/vnet/session/application_worker.c b/src/vnet/session/application_worker.c
index 2b2cc34..c332f19 100644
--- a/src/vnet/session/application_worker.c
+++ b/src/vnet/session/application_worker.c
@@ -186,6 +186,7 @@
       sm = segment_manager_alloc ();
     }
   sm->app_wrk_index = app_wrk->wrk_index;
+  segment_manager_init (sm);
   return sm;
 }
 
diff --git a/src/vnet/session/segment_manager.c b/src/vnet/session/segment_manager.c
index d734d64..53be0bf 100644
--- a/src/vnet/session/segment_manager.c
+++ b/src/vnet/session/segment_manager.c
@@ -333,21 +333,12 @@
   return sm;
 }
 
-/**
- * Initializes segment manager based on options provided.
- * Returns error if ssvm segment(s) allocation fails.
- */
 int
 segment_manager_init (segment_manager_t * sm)
 {
   segment_manager_props_t *props;
-  uword first_seg_size;
-  fifo_segment_t *fs;
-  int fs_index, i;
 
   props = segment_manager_properties_get (sm);
-  first_seg_size = clib_max (props->segment_size,
-			     sm_main.default_segment_size);
 
   sm->max_fifo_size = props->max_fifo_size ?
     props->max_fifo_size : sm_main.default_max_fifo_size;
@@ -356,6 +347,25 @@
   segment_manager_set_watermarks (sm,
 				  props->high_watermark,
 				  props->low_watermark);
+  return 0;
+}
+
+/**
+ * Initializes segment manager based on options provided.
+ * Returns error if ssvm segment(s) allocation fails.
+ */
+int
+segment_manager_init_first (segment_manager_t * sm)
+{
+  segment_manager_props_t *props;
+  uword first_seg_size;
+  fifo_segment_t *fs;
+  int fs_index, i;
+
+  segment_manager_init (sm);
+  props = segment_manager_properties_get (sm);
+  first_seg_size = clib_max (props->segment_size,
+			     sm_main.default_segment_size);
 
   if (props->prealloc_fifos)
     {
diff --git a/src/vnet/session/segment_manager.h b/src/vnet/session/segment_manager.h
index 1e6b14d..f4dacdd 100644
--- a/src/vnet/session/segment_manager.h
+++ b/src/vnet/session/segment_manager.h
@@ -88,6 +88,7 @@
 
 segment_manager_t *segment_manager_alloc (void);
 int segment_manager_init (segment_manager_t * sm);
+int segment_manager_init_first (segment_manager_t * sm);
 
 /**
  * Cleanup segment manager
