diff --git a/addons/ot/Makefile b/addons/ot/Makefile
index ef48ce4..0cc8c6a 100644
--- a/addons/ot/Makefile
+++ b/addons/ot/Makefile
@@ -3,6 +3,7 @@
 # OT_INC     : force the include path to libopentracing-c-wrapper
 # OT_LIB     : force the lib path to libopentracing-c-wrapper
 # OT_RUNPATH : add libopentracing-c-wrapper RUNPATH to haproxy executable
+# OT_USE_VARS : allows the use of variables for the OpenTracing context
 
 OT_DEFINE    =
 OT_CFLAGS    =
@@ -61,8 +62,13 @@
 	addons/ot/src/parser.o      \
 	addons/ot/src/pool.o        \
 	addons/ot/src/scope.o       \
-	addons/ot/src/util.o        \
+	addons/ot/src/util.o
+
+ifneq ($(OT_USE_VARS),)
+OT_DEFINE     = -DUSE_OT_VARS
+OPTIONS_OBJS += \
 	addons/ot/src/vars.o
+endif
 
 OPTIONS_CFLAGS  += $(OT_CFLAGS) -Iaddons/ot/include
 OPTIONS_LDFLAGS += $(OT_LDFLAGS)
diff --git a/addons/ot/include/filter.h b/addons/ot/include/filter.h
index 0b36354..c97a0cc 100644
--- a/addons/ot/include/filter.h
+++ b/addons/ot/include/filter.h
@@ -22,7 +22,7 @@
 
 #define FLT_OT_FMT_NAME           "'" FLT_OT_OPT_NAME "' : "
 #define FLT_OT_FMT_TYPE           "'filter' : "
-#define FTL_OT_VAR_UUID           "sess", "ot", "uuid"
+#define FLT_OT_VAR_UUID           "sess", "ot", "uuid"
 #define FLT_OT_ALERT(f, ...)      ha_alert(FLT_OT_FMT_TYPE FLT_OT_FMT_NAME f "\n", ##__VA_ARGS__)
 
 #define FLT_OT_CONDITION_IF       "if"
diff --git a/addons/ot/include/parser.h b/addons/ot/include/parser.h
index 75a39cc..9693991 100644
--- a/addons/ot/include/parser.h
+++ b/addons/ot/include/parser.h
@@ -65,14 +65,29 @@
 	FLT_OT_PARSE_GROUP_DEF(    ID, 0, 1, 2, 2, "ot-group", " <name>") \
 	FLT_OT_PARSE_GROUP_DEF(SCOPES, 0, 0, 2, 0, "scopes",   " <name> ...")
 
+#ifdef USE_OT_VARS
+#  define FLT_OT_PARSE_SCOPE_INJECT_HELP    " <name-prefix> [use-vars] [use-headers]"
+#  define FLT_OT_PARSE_SCOPE_EXTRACT_HELP   " <name-prefix> [use-vars | use-headers]"
+#else
+#  define FLT_OT_PARSE_SCOPE_INJECT_HELP    " <name-prefix> [use-headers]"
+#  define FLT_OT_PARSE_SCOPE_EXTRACT_HELP   " <name-prefix> [use-headers]"
+#endif
+
+/*
+ * In case the possibility of working with OpenTracing context via HAProxyu
+ * variables is not used, args_max member of the structure flt_ot_parse_data
+ * should be reduced for 'inject' keyword.  However, this is not critical
+ * because in this case the 'use-vars' argument cannot be entered anyway,
+ * so I will not complicate it here with additional definitions.
+ */
 #define FLT_OT_PARSE_SCOPE_DEFINES                                                                                    \
 	FLT_OT_PARSE_SCOPE_DEF(     ID, 0, 1, 2, 2, "ot-scope", " <name>")                                            \
 	FLT_OT_PARSE_SCOPE_DEF(   SPAN, 0, 0, 2, 5, "span",     " <name> [<reference>] [root]")                       \
 	FLT_OT_PARSE_SCOPE_DEF(    TAG, 1, 0, 3, 0, "tag",      " <name> <sample> ...")                               \
 	FLT_OT_PARSE_SCOPE_DEF(    LOG, 1, 0, 3, 0, "log",      " <name> <sample> ...")                               \
 	FLT_OT_PARSE_SCOPE_DEF(BAGGAGE, 1, 4, 3, 0, "baggage",  " <name> <sample> ...")                               \
-	FLT_OT_PARSE_SCOPE_DEF( INJECT, 1, 3, 2, 4, "inject",   " <name-prefix> [use-vars] [use-headers]")            \
-	FLT_OT_PARSE_SCOPE_DEF(EXTRACT, 0, 3, 2, 3, "extract",  " <name-prefix> [use-vars | use-headers]")            \
+	FLT_OT_PARSE_SCOPE_DEF( INJECT, 1, 3, 2, 4, "inject",   FLT_OT_PARSE_SCOPE_INJECT_HELP)                       \
+	FLT_OT_PARSE_SCOPE_DEF(EXTRACT, 0, 3, 2, 3, "extract",  FLT_OT_PARSE_SCOPE_EXTRACT_HELP)                      \
 	FLT_OT_PARSE_SCOPE_DEF( FINISH, 0, 0, 2, 0, "finish",   " <name> ...")                                        \
 	FLT_OT_PARSE_SCOPE_DEF(    ACL, 0, 1, 3, 0, "acl",      " <name> <criterion> [flags] [operator] <value> ...") \
 	FLT_OT_PARSE_SCOPE_DEF(  EVENT, 0, 0, 2, 0, "event",    " <name> [{ if | unless } <condition>]")
diff --git a/addons/ot/src/event.c b/addons/ot/src/event.c
index 90b5828..0cb6b1d 100644
--- a/addons/ot/src/event.c
+++ b/addons/ot/src/event.c
@@ -85,12 +85,14 @@
 
 			if (conf_span->ctx_flags & (FLT_OT_CTX_USE_VARS | FLT_OT_CTX_USE_HEADERS)) {
 				for (text_map = &(writer.text_map); i < text_map->count; i++) {
+#ifdef USE_OT_VARS
 					if (!(conf_span->ctx_flags & FLT_OT_CTX_USE_VARS))
 						/* Do nothing. */;
 					else if (flt_ot_var_register(FLT_OT_VARS_SCOPE, conf_span->ctx_id, text_map->key[i], err) == -1)
 						retval = FLT_OT_RET_ERROR;
 					else if (flt_ot_var_set(s, FLT_OT_VARS_SCOPE, conf_span->ctx_id, text_map->key[i], text_map->value[i], dir, err) == -1)
 						retval = FLT_OT_RET_ERROR;
+#endif
 
 					if (!(conf_span->ctx_flags & FLT_OT_CTX_USE_HEADERS))
 						/* Do nothing. */;
@@ -184,7 +186,7 @@
 	}
 
 	list_for_each_entry(conf_ctx, &(conf_scope->contexts), list) {
-		struct otc_text_map *text_map;
+		struct otc_text_map *text_map = NULL;
 
 		FLT_OT_DBG(3, "run context '%s' -> '%s'", conf_scope->id, conf_ctx->id);
 		FLT_OT_DBG_CONF_CONTEXT("run context ", conf_ctx);
@@ -195,8 +197,10 @@
 		 */
 		if (conf_ctx->flags & FLT_OT_CTX_USE_HEADERS)
 			text_map = flt_ot_http_headers_get(chn, conf_ctx->id, conf_ctx->id_len, err);
+#ifdef USE_OT_VARS
 		else
 			text_map = flt_ot_vars_get(s, FLT_OT_VARS_SCOPE, conf_ctx->id, dir, err);
+#endif
 
 		if (text_map != NULL) {
 			if (flt_ot_scope_context_init(f->ctx, conf->tracer->tracer, conf_ctx->id, conf_ctx->id_len, text_map, dir, err) == NULL)
@@ -314,7 +318,9 @@
 			retval = FLT_OT_RET_ERROR;
 	}
 
+#ifdef USE_OT_VARS
 	flt_ot_vars_dump(s);
+#endif
 	flt_ot_http_headers_dump(chn);
 
 	FLT_OT_DBG(3, "event = %d, chn = %p, s->req = %p, s->res = %p", event, chn, &(s->req), &(s->res));
diff --git a/addons/ot/src/filter.c b/addons/ot/src/filter.c
index 04c4a67..bd71186 100644
--- a/addons/ot/src/filter.c
+++ b/addons/ot/src/filter.c
@@ -560,7 +560,9 @@
 
 	FLT_OT_LOG(LOG_INFO, "%08x %08x", f->pre_analyzers, f->post_analyzers);
 
+#ifdef USE_OT_VARS
 	flt_ot_vars_dump(s);
+#endif
 	flt_ot_http_headers_dump(&(s->req));
 
 	FLT_OT_RETURN(FLT_OT_RET_OK);
diff --git a/addons/ot/src/parser.c b/addons/ot/src/parser.c
index e26ca18..ae09e02 100644
--- a/addons/ot/src/parser.c
+++ b/addons/ot/src/parser.c
@@ -720,8 +720,10 @@
 
 	if (strcmp(args[cur_arg], FLT_OT_PARSE_CTX_USE_HEADERS) == 0)
 		flags = FLT_OT_CTX_USE_HEADERS;
+#ifdef USE_OT_VARS
 	else if (strcmp(args[cur_arg], FLT_OT_PARSE_CTX_USE_VARS) == 0)
 		flags = FLT_OT_CTX_USE_VARS;
+#endif
 	else
 		FLT_OT_PARSE_ERR(err, "'%s' : invalid context storage type", args[0]);
 
@@ -939,8 +941,10 @@
 			conf_ctx->flags = FLT_OT_CTX_USE_HEADERS;
 		else if (strcmp(args[2], FLT_OT_PARSE_CTX_USE_HEADERS) == 0)
 			conf_ctx->flags = FLT_OT_CTX_USE_HEADERS;
+#ifdef USE_OT_VARS
 		else if (strcmp(args[2], FLT_OT_PARSE_CTX_USE_VARS) == 0)
 			conf_ctx->flags = FLT_OT_CTX_USE_VARS;
+#endif
 		else
 			FLT_OT_PARSE_ERR(&err, "'%s' : invalid context storage type", args[2]);
 	}
diff --git a/addons/ot/src/scope.c b/addons/ot/src/scope.c
index 8d70a08..112f9d5 100644
--- a/addons/ot/src/scope.c
+++ b/addons/ot/src/scope.c
@@ -120,8 +120,14 @@
 	               (uint16_t)(retptr->uuid.clock_seq | UINT16_C(0x8000)),
 	               (uint64_t)retptr->uuid.node);
 
-	if (flt_ot_var_register(FTL_OT_VAR_UUID, err) != -1)
-		(void)flt_ot_var_set(s, FTL_OT_VAR_UUID, retptr->uuid.s, SMP_OPT_DIR_REQ, err);
+#ifdef USE_OT_VARS
+	/*
+	 * The HAProxy variable 'sess.ot.uuid' is registered here,
+	 * after which its value is set to runtime context UUID.
+	 */
+	if (flt_ot_var_register(FLT_OT_VAR_UUID, err) != -1)
+		(void)flt_ot_var_set(s, FLT_OT_VAR_UUID, retptr->uuid.s, SMP_OPT_DIR_REQ, err);
+#endif
 
 	FLT_OT_DBG_RUNTIME_CONTEXT("session context: ", retptr);
 
@@ -610,7 +616,9 @@
 				 * the context in question should be deleted.
 				 */
 				(void)flt_ot_http_headers_remove(chn, ctx->id, NULL);
+#ifdef USE_OT_VARS
 				(void)flt_ot_vars_unset(rt_ctx->stream, FLT_OT_VARS_SCOPE, ctx->id, ctx->smp_opt_dir, NULL);
+#endif
 
 				flt_ot_scope_context_free(&ctx);
 			}
