diff --git a/package/deps.mak b/package/deps.mak
index 13d075fcdf52ed7c15c0a39c4291e07959476f3e..1f48e1bbf89f34cab94069e64c66f14a1f648deb 100644
--- a/package/deps.mak
+++ b/package/deps.mak
@@ -5,11 +5,12 @@
 src/include/66/66.h: src/include/66/backup.h src/include/66/config.h src/include/66/constants.h src/include/66/db.h src/include/66/enum.h src/include/66/parser.h src/include/66/svc.h src/include/66/tree.h src/include/66/utils.h
 src/include/66/constants.h: src/include/66/config.h
 src/include/66/parser.h: src/include/66/enum.h
-src/66/66-all.o src/66/66-all.lo: src/66/66-all.c
+src/66/66-all.o src/66/66-all.lo: src/66/66-all.c src/include/66/config.h src/include/66/constants.h src/include/66/tree.h src/include/66/utils.h
 src/66/66-dbctl.o src/66/66-dbctl.lo: src/66/66-dbctl.c src/include/66/constants.h src/include/66/db.h src/include/66/enum.h src/include/66/tree.h src/include/66/utils.h
 src/66/66-disable.o src/66/66-disable.lo: src/66/66-disable.c src/include/66/backup.h src/include/66/constants.h src/include/66/db.h src/include/66/enum.h src/include/66/tree.h src/include/66/utils.h
 src/66/66-enable.o src/66/66-enable.lo: src/66/66-enable.c src/include/66/backup.h src/include/66/constants.h src/include/66/db.h src/include/66/enum.h src/include/66/parser.h src/include/66/svc.h src/include/66/tree.h src/include/66/utils.h
-src/66/66-init.o src/66/66-init.lo: src/66/66-init.c src/include/66/backup.h src/include/66/constants.h src/include/66/tree.h src/include/66/utils.h
+src/66/66-execl.o src/66/66-execl.lo: src/66/66-execl.c
+src/66/66-init.o src/66/66-init.lo: src/66/66-init.c src/include/66/backup.h src/include/66/constants.h src/include/66/db.h src/include/66/tree.h src/include/66/utils.h
 src/66/66-scandir.o src/66/66-scandir.lo: src/66/66-scandir.c src/include/66/config.h src/include/66/constants.h src/include/66/utils.h
 src/66/66-start.o src/66/66-start.lo: src/66/66-start.c src/include/66/backup.h src/include/66/config.h src/include/66/constants.h src/include/66/db.h src/include/66/enum.h src/include/66/svc.h src/include/66/tree.h src/include/66/utils.h
 src/66/66-stop.o src/66/66-stop.lo: src/66/66-stop.c src/include/66/backup.h src/include/66/config.h src/include/66/constants.h src/include/66/db.h src/include/66/enum.h src/include/66/svc.h src/include/66/tree.h src/include/66/utils.h
@@ -63,6 +64,8 @@ src/lib66/tree_switch_tobackup.o src/lib66/tree_switch_tobackup.lo: src/lib66/tr
 66-disable: src/66/66-disable.o ${LIB66} -loblibs -lskarnet 
 66-enable: EXTRA_LIBS :=
 66-enable: src/66/66-enable.o ${LIB66} -loblibs -lskarnet -lexecline -ls6
+66-execl: EXTRA_LIBS :=
+66-execl: src/66/66-execl.o -loblibs -lskarnet
 66-init: EXTRA_LIBS :=
 66-init: src/66/66-init.o ${LIB66} -loblibs -ls6 -lskarnet
 66-scandir: EXTRA_LIBS :=
diff --git a/package/modes b/package/modes
index dc256d2e3c9016b54d9859462cdf3b1445124161..485cbdbf6591e59cd0cf9a92addd0fb0e17afc7b 100644
--- a/package/modes
+++ b/package/modes
@@ -8,3 +8,4 @@
 66-stop		0755
 66-svctl	0755
 66-all		0755
+66-execl	0755
diff --git a/package/targets.mak b/package/targets.mak
index 1304eadf12eaf3b66053a1387cdb5cf864316ed9..e28837d0040c2a021ce6bff0e7a581022d8de2c7 100644
--- a/package/targets.mak
+++ b/package/targets.mak
@@ -8,6 +8,7 @@ BIN_TARGETS := \
 66-start \
 66-stop \
 66-svctl \
-66-all
+66-all \
+66-execl
 
 LIB_DEFS := 66=66
diff --git a/src/66/66-execl.c b/src/66/66-execl.c
new file mode 100644
index 0000000000000000000000000000000000000000..5d73de565963fa8642d1f726e4ca5f7266419dc8
--- /dev/null
+++ b/src/66/66-execl.c
@@ -0,0 +1,47 @@
+/* 
+ * 66-execl.c
+ * 
+ * Copyright (c) 2018 Eric Vidal <eric@obarun.org>
+ * 
+ * All rights reserved.
+ * 
+ * This file is part of Obarun. It is subject to the license terms in
+ * the LICENSE file found in the top-level directory of this
+ * distribution.
+ * This file may not be copied, modified, propagated, or distributed
+ * except according to the terms contained in the LICENSE file./
+ */
+
+#include <oblibs/string.h>
+#include <oblibs/stralist.h>
+#include <oblibs/error2.h>
+
+#include <skalibs/genalloc.h>
+#include <skalibs/djbunix.h>
+#include <skalibs/stralloc.h>
+
+
+int main(int argc, char const *const *argv, char const *const *envp)
+{
+
+	int r ;
+	PROG = "66-execl" ;
+	genalloc ga = GENALLOC_ZERO ; 
+	if (argc < 2) strerr_diefu1x(111,"missing arguments") ;
+	argc-- ; argv++ ;	
+	for (int i = 0 ;i < argc;i++,argv++)
+	{
+		r = clean_val(&ga,*argv) ;
+		if (!r) strerr_diefu2x(111,"clean_val: ",*argv) ;
+	}
+	
+	unsigned int m = genalloc_len(stralist,&ga) ;
+	char const *newarg[m+1] ;
+	unsigned int n = 0 ;
+	for (unsigned int i =0; i < genalloc_len(stralist,&ga); i++)
+		newarg[n++] = gaistr(&ga,i) ;
+	
+	newarg[n] = 0 ;
+			
+	xpathexec_run(newarg[0],newarg,envp) ;
+}
diff --git a/src/66/deps-exe/66-execl b/src/66/deps-exe/66-execl
new file mode 100644
index 0000000000000000000000000000000000000000..d24233ce5bfe994938345010c182fd45c2a1c1e9
--- /dev/null
+++ b/src/66/deps-exe/66-execl
@@ -0,0 +1,2 @@
+-loblibs
+-lskarnet