diff --git a/addons/ot/src/filter.c b/addons/ot/src/filter.c
index d5fc2c7..6699d46 100644
--- a/addons/ot/src/filter.c
+++ b/addons/ot/src/filter.c
@@ -156,15 +156,29 @@
 static int flt_ot_init(struct proxy *p, struct flt_conf *fconf)
 {
 	struct flt_ot_conf *conf = FLT_OT_DEREF(fconf, conf, NULL);
-	int                 retval = FLT_OT_RET_OK;
+	char               *err = NULL;
+	int                 retval = FLT_OT_RET_ERROR;
 
 	FLT_OT_FUNC("%p, %p", p, fconf);
 
 	if (conf == NULL)
-		FLT_OT_RETURN(FLT_OT_RET_ERROR);
+		FLT_OT_RETURN(retval);
 
 	flt_ot_cli_init();
 
+	/*
+	 * Initialize the OpenTracing library.
+	 * Enable HTX streams filtering.
+	 */
+	retval = ot_init(&(conf->tracer->tracer), conf->tracer->config, conf->tracer->plugin, &err);
+	if (retval != FLT_OT_RET_ERROR)
+		fconf->flags |= FLT_CFG_FL_HTX;
+	else if (err != NULL) {
+		FLT_OT_ALERT("%s", err);
+
+		FLT_OT_ERR_FREE(err);
+	}
+
 	FLT_OT_RETURN(retval);
 }
 
@@ -412,6 +426,8 @@
 }
 
 
+#ifdef DEBUG_OT
+
 /***
  * NAME
  *   flt_ot_init_per_thread -
@@ -430,38 +446,14 @@
  */
 static int flt_ot_init_per_thread(struct proxy *p, struct flt_conf *fconf)
 {
-	struct flt_ot_conf *conf = FLT_OT_DEREF(fconf, conf, NULL);
-	char               *err = NULL;
-	int                 retval = FLT_OT_RET_ERROR;
+	int retval = FLT_OT_RET_OK;
 
 	FLT_OT_FUNC("%p, %p", p, fconf);
 
-	if (conf == NULL)
-		FLT_OT_RETURN(retval);
-
-	/*
-	 * Initialize the OpenTracing library.
-	 * Enable HTX streams filtering.
-	 */
-	if (conf->tracer->tracer == NULL) {
-		retval = ot_init(&(conf->tracer->tracer), conf->tracer->config, conf->tracer->plugin, &err);
-		if (retval != FLT_OT_RET_ERROR)
-			fconf->flags |= FLT_CFG_FL_HTX;
-		else if (err != NULL) {
-			FLT_OT_ALERT("%s", err);
-
-			FLT_OT_ERR_FREE(err);
-		}
-	} else {
-		retval = FLT_OT_RET_OK;
-	}
-
 	FLT_OT_RETURN(retval);
 }
 
 
-#ifdef DEBUG_OT
-
 /***
  * NAME
  *   flt_ot_deinit_per_thread -
@@ -1120,7 +1112,7 @@
 	.init                  = flt_ot_init,
 	.deinit                = flt_ot_deinit,
 	.check                 = flt_ot_check,
-	.init_per_thread       = flt_ot_init_per_thread,
+	.init_per_thread       = FLT_OT_DBG_IFDEF(flt_ot_init_per_thread, NULL),
 	.deinit_per_thread     = FLT_OT_DBG_IFDEF(flt_ot_deinit_per_thread, NULL),
 
 	/* Stream callbacks. */
