diff --git a/src/lib66/exec/ssexec_resolve.c b/src/lib66/exec/ssexec_resolve.c
index 1fa83425dc21687eb99036963c5232b97c9a9f27..41aab5c965d03f6620d8d847999bab22232bbcf9 100644
--- a/src/lib66/exec/ssexec_resolve.c
+++ b/src/lib66/exec/ssexec_resolve.c
@@ -186,7 +186,7 @@ int ssexec_resolve(int argc, char const *const *argv, ssexec_t *info)
         "owner",
         "treename",
         "user" ,
-        "inmodule",
+        "inns",
         "enabled",
 
         "home",
diff --git a/src/lib66/exec/ssexec_tree_signal.c b/src/lib66/exec/ssexec_tree_signal.c
index e3f5f9c8694689aca7fa9eb3991b009562d48725..a7643914f366f785e77534868537da9112f35a33 100644
--- a/src/lib66/exec/ssexec_tree_signal.c
+++ b/src/lib66/exec/ssexec_tree_signal.c
@@ -456,7 +456,7 @@ static int ssexec_callback(stralloc *sa, ssexec_t *info, unsigned int what)
 
         if (!what ? res.enabled : ste.issupervised == STATE_FLAGS_TRUE && !res.earlier) {
 
-            if (get_rstrlen_until(name, SS_LOG_SUFFIX) < 0 && !res.inmodule)
+            if (get_rstrlen_until(name, SS_LOG_SUFFIX) < 0 && !res.inns)
                 if (!sastr_add_string(sa, name))
                     log_dieu(LOG_EXIT_SYS, "add string") ;
         }
diff --git a/src/lib66/parse/parse_compute_resolve.c b/src/lib66/parse/parse_compute_resolve.c
index e13580bfb024b05672e5c6a6b1f623b14fd45ca2..f5192dd4735ddd8b5e2653a018109f4146e0045d 100644
--- a/src/lib66/parse/parse_compute_resolve.c
+++ b/src/lib66/parse/parse_compute_resolve.c
@@ -393,8 +393,8 @@ static void compute_log(resolve_service_t *res, resolve_service_t *ares, unsigne
     lres.owner = res->owner ;
     lres.treename = resolve_add_string(wres, str + res->treename) ;
     lres.user = resolve_add_string(wres, str + res->user) ;
-    if (res->inmodule)
-        lres.inmodule = resolve_add_string(wres, str + res->inmodule) ;
+    if (res->inns)
+        lres.inns = resolve_add_string(wres, str + res->inns) ;
 
     lres.path.home = resolve_add_string(wres, str + res->path.home) ;
     lres.path.frontend = resolve_add_string(wres, str + res->path.frontend) ;
diff --git a/src/lib66/parse/parse_frontend.c b/src/lib66/parse/parse_frontend.c
index 01fae33b5ef322594ac6163d552cc6410b4cf308..d8a9c66e22c6c06acb41365b7cf835886820fad1 100644
--- a/src/lib66/parse/parse_frontend.c
+++ b/src/lib66/parse/parse_frontend.c
@@ -15,6 +15,7 @@
 #include <stdint.h>
 #include <string.h>
 #include <stdlib.h> //free
+#include <sys/stat.h>
 
 #include <oblibs/log.h>
 #include <oblibs/sastr.h>
@@ -84,7 +85,7 @@ static void parse_service_instance(stralloc *frontend, char const *svsrc, char c
  * @Die on fail
  * @Return 1 on success
  * @Return 2 -> already parsed */
-int parse_frontend(char const *sv, resolve_service_t *ares, unsigned int *areslen, ssexec_t *info, uint8_t force, uint8_t conf, char const *forced_directory, char const *main, char const *inmodule)
+int parse_frontend(char const *sv, resolve_service_t *ares, unsigned int *areslen, ssexec_t *info, uint8_t force, uint8_t conf, char const *forced_directory, char const *main, char const *inns)
 {
     log_flow() ;
 
@@ -100,13 +101,13 @@ int parse_frontend(char const *sv, resolve_service_t *ares, unsigned int *aresle
     if (!ob_dirname(svsrc, sv))
         log_dieu(LOG_EXIT_SYS, "get dirname of: ", sv) ;
 
-    if (inmodule) {
+    if (inns) {
 
         if (service_resolve_array_search(ares, *areslen, svname) >= 0)
             log_warn_return(2, "ignoring: ", svname, " service -- already appended to the selection") ;
 
-        char n[strlen(inmodule) + 1 + strlen(svname) + 1] ;
-        auto_strings(n, inmodule, ":", svname) ;
+        char n[strlen(inns) + 1 + strlen(svname) + 1] ;
+        auto_strings(n, inns, ":", svname) ;
 
         if (service_resolve_array_search(ares, *areslen, n) >= 0)
             log_warn_return(2, "ignoring: ", n, " service -- already appended to the selection") ;
@@ -189,13 +190,13 @@ int parse_frontend(char const *sv, resolve_service_t *ares, unsigned int *aresle
         }
     }
 
-    if (inmodule) {
+    if (inns) {
 
-        char n[strlen(inmodule) + 1 + strlen(svname) + 1] ;
-        auto_strings(n, inmodule,":",svname) ;
+        char n[strlen(inns) + 1 + strlen(svname) + 1] ;
+        auto_strings(n, inns,":",svname) ;
 
         res.name = resolve_add_string(wres, n) ;
-        res.inmodule = resolve_add_string(wres, inmodule) ;
+        res.inns = resolve_add_string(wres, inns) ;
 
     } else {
 
@@ -217,8 +218,11 @@ int parse_frontend(char const *sv, resolve_service_t *ares, unsigned int *aresle
 
     /** contents of directory should be listed by service_frontend_path
      * except for module type */
-    if (scan_mode(sv, S_IFDIR) == 1 && res.type != TYPE_MODULE)
-        goto freed ;
+    if (scan_mode(sv, S_IFDIR) == 1 && res.type != TYPE_MODULE) {
+        stralloc_free(&sa) ;
+        resolve_free(wres) ;
+        return 1 ;
+    }
 
     if (!parse_contents(wres, file, svname))
         log_dieu(LOG_EXIT_SYS, "parse file of service: ", svname) ;
@@ -254,24 +258,23 @@ int parse_frontend(char const *sv, resolve_service_t *ares, unsigned int *aresle
     /** parse interdependences if the service was never parsed */
     if (isparsed == STATE_FLAGS_FALSE) {
 
-        if (!parse_interdependences(svname, res.sa.s + res.dependencies.depends, res.dependencies.ndepends, ares, areslen, info, force, conf, forced_directory, main, inmodule))
+        if (!parse_interdependences(svname, res.sa.s + res.dependencies.depends, res.dependencies.ndepends, ares, areslen, info, force, conf, forced_directory, main, inns))
             log_dieu(LOG_EXIT_SYS, "parse dependencies of service: ", svname) ;
     }
 
     if (res.type == TYPE_MODULE)
         parse_module(&res, ares, areslen, info, force) ;
 
-    if (service_resolve_array_search(ares, *areslen, svname) < 0) {
+    if (service_resolve_array_search(ares, *areslen, res.sa.s + res.name) < 0) {
 
-        log_trace("add service ", svname, " to the selection") ;
+        log_trace("add service ", res.sa.s + res.name, " to the selection") ;
         if (*areslen > SS_MAX_SERVICE)
             log_die(LOG_EXIT_SYS, "too many services to parse -- compile again 66 changing the --max-service options") ;
         ares[(*areslen)++] = res ;
     }
 
-    freed:
-        stralloc_free(&sa) ;
-        free(wres) ;
-        return 1 ;
+    stralloc_free(&sa) ;
+    free(wres) ;
+    return 1 ;
 }
 
diff --git a/src/lib66/parse/parse_interdependences.c b/src/lib66/parse/parse_interdependences.c
index 7a17d0d31e6f522941e5f37a4054990c6f41a453..6dc126a062cd5d043339aa89b8369d79011da76f 100644
--- a/src/lib66/parse/parse_interdependences.c
+++ b/src/lib66/parse/parse_interdependences.c
@@ -30,7 +30,7 @@
 #include <66/instance.h>
 #include <66/module.h>
 
-int parse_interdependences(char const *service, char const *list, unsigned int listlen, resolve_service_t *ares, unsigned int *areslen, ssexec_t *info, uint8_t force, uint8_t conf, char const *forced_directory, char const *main, char const *inmodule)
+int parse_interdependences(char const *service, char const *list, unsigned int listlen, resolve_service_t *ares, unsigned int *areslen, ssexec_t *info, uint8_t force, uint8_t conf, char const *forced_directory, char const *main, char const *inns)
 {
     log_flow() ;
 
@@ -89,11 +89,9 @@ int parse_interdependences(char const *service, char const *list, unsigned int l
              * forced_directory == 0 means that the service
              * comes from an external directory of the module.
              * In this case don't associated it at the module. */
-            parse_frontend(sa.s, ares, areslen, info, force, conf, forced_directory, main, !forced_directory ? 0 : inmodule) ;
-
+            parse_frontend(sa.s, ares, areslen, info, force, conf, forced_directory, main, !forced_directory ? 0 : inns) ;
         }
 
-
     } else
         log_trace("no interdependences found for service: ", service) ;
 
diff --git a/src/lib66/parse/parse_rename_interdependences.c b/src/lib66/parse/parse_rename_interdependences.c
index 279d045c2ae7761966d817e41169a515f8e287ea..df349abbabeb3ffeae5a06d21d817cc576f4844b 100644
--- a/src/lib66/parse/parse_rename_interdependences.c
+++ b/src/lib66/parse/parse_rename_interdependences.c
@@ -52,7 +52,7 @@ static void parse_prefix(char *result, stack *stk, resolve_service_t *ares, unsi
 
         /** check if the dependencies is a external one. In this
          * case, the service is not considered as part of the prefix */
-        if (ares[aresid].inmodule && (!strcmp(ares[aresid].sa.s + ares[aresid].inmodule, prefix)))
+        if (ares[aresid].inns && (!strcmp(ares[aresid].sa.s + ares[aresid].inns, prefix)))
             auto_strings(result + strlen(result), prefix, ":", stk->s + pos, " ") ;
         else
             auto_strings(result + strlen(result), stk->s + pos, " ") ;
diff --git a/src/lib66/service/service_enable_disable.c b/src/lib66/service/service_enable_disable.c
index 6e67d68522d1876635e64e55e530a6c505255d98..3a1edbd059462ca090e19bc126f5a2ff0f00c744 100644
--- a/src/lib66/service/service_enable_disable.c
+++ b/src/lib66/service/service_enable_disable.c
@@ -76,7 +76,7 @@ void service_enable_disable(graph_t *g, unsigned int idx, resolve_service_t *are
 
         /** the logger must be disabled to avoid to start it
          * with the 66 tree start <tree> command */
-        if (res->logger.want && !action && res->type == TYPE_CLASSIC && !res->inmodule) {
+        if (res->logger.want && !action && res->type == TYPE_CLASSIC && !res->inns) {
 
             char *name = res->sa.s + res->logger.name ;
 
diff --git a/src/lib66/service/service_resolve_copy.c b/src/lib66/service/service_resolve_copy.c
index a92b38129d532715b17730aa62990a417b46f373..a34a08d60d40c646a09a00a859e32f23b89fa109 100644
--- a/src/lib66/service/service_resolve_copy.c
+++ b/src/lib66/service/service_resolve_copy.c
@@ -48,7 +48,7 @@ int service_resolve_copy(resolve_service_t *dst, resolve_service_t *res)
     dst->owner = res->owner ;
     dst->treename = res->treename ;
     dst->user = res->user ;
-    dst->inmodule = res->inmodule ;
+    dst->inns = res->inns ;
     dst->enabled = res->enabled ;
 
     // path
diff --git a/src/lib66/service/service_resolve_get_field_tosa.c b/src/lib66/service/service_resolve_get_field_tosa.c
index 3fb6dbe54f55ebb4747ec3e6423a47ff0f77dd6d..c0480758464454cc2dffc4db00bab665547a6fc1 100644
--- a/src/lib66/service/service_resolve_get_field_tosa.c
+++ b/src/lib66/service/service_resolve_get_field_tosa.c
@@ -92,8 +92,8 @@ int service_resolve_get_field_tosa(stralloc *sa, resolve_service_t *res, resolve
             str = res->sa.s + res->user ;
             break ;
 
-        case E_RESOLVE_SERVICE_INMODULE:
-            str = res->sa.s + res->inmodule ;
+        case E_RESOLVE_SERVICE_INNS:
+            str = res->sa.s + res->inns ;
             break ;
 
         case E_RESOLVE_SERVICE_ENABLED:
diff --git a/src/lib66/service/service_resolve_modify_field.c b/src/lib66/service/service_resolve_modify_field.c
index abf5e686eff6a9ba754d8bd084ee430b9bf22b0a..bbe51703ef90d67bc3dd84bea0de7441acb6d7f7 100644
--- a/src/lib66/service/service_resolve_modify_field.c
+++ b/src/lib66/service/service_resolve_modify_field.c
@@ -35,7 +35,7 @@ resolve_field_table_t resolve_service_field_table[] = {
     [E_RESOLVE_SERVICE_OWNER] = { .field = "owner" },
     [E_RESOLVE_SERVICE_TREENAME] = { .field = "treename" },
     [E_RESOLVE_SERVICE_USER] = { .field = "user" },
-    [E_RESOLVE_SERVICE_INMODULE] = { .field = "inmodule" },
+    [E_RESOLVE_SERVICE_INNS] = { .field = "inns" },
     [E_RESOLVE_SERVICE_ENABLED] = { .field = "enabled" },
 
     // path
@@ -188,12 +188,12 @@ int service_resolve_modify_field(resolve_service_t *res, resolve_service_enum_t
             res->user = resolve_add_string(wres, data) ;
             break ;
 
-        case E_RESOLVE_SERVICE_INMODULE:
-            res->inmodule = resolve_add_string(wres, data) ;
+        case E_RESOLVE_SERVICE_INNS:
+            res->inns = resolve_add_string(wres, data) ;
             break ;
 
         case E_RESOLVE_SERVICE_ENABLED:
-            res->enabled = resolve_add_uint(data) ; ;
+            res->enabled = resolve_add_uint(data) ;
             break ;
 
 
diff --git a/src/lib66/service/service_resolve_read_cdb.c b/src/lib66/service/service_resolve_read_cdb.c
index c41705f6c2f2b3cca5464d0852773e430d4ff5b1..5b482c4f675177f4fc958ff3704f6b5072e89e92 100644
--- a/src/lib66/service/service_resolve_read_cdb.c
+++ b/src/lib66/service/service_resolve_read_cdb.c
@@ -60,8 +60,8 @@ int service_resolve_read_cdb(cdb *c, resolve_service_t *res)
     res->treename = tmp.len ? resolve_add_string(wres,tmp.s) : 0 ;
     resolve_find_cdb(&tmp,c,"user") ;
     res->user = tmp.len ? resolve_add_string(wres,tmp.s) : 0 ;
-    resolve_find_cdb(&tmp,c,"inmodule") ;
-    res->inmodule = tmp.len ? resolve_add_string(wres,tmp.s) : 0 ;
+    resolve_find_cdb(&tmp,c,"inns") ;
+    res->inns = tmp.len ? resolve_add_string(wres,tmp.s) : 0 ;
     x = resolve_find_cdb(&tmp,c,"enabled") ;
     res->enabled = x ;
 
diff --git a/src/lib66/service/service_resolve_write_cdb.c b/src/lib66/service/service_resolve_write_cdb.c
index 8e9e92ffbe5f4b7b85dc03a87d4e59a63a8afd63..c6f742ce96f421ecbae2184f85e57e87c82d7c50 100644
--- a/src/lib66/service/service_resolve_write_cdb.c
+++ b/src/lib66/service/service_resolve_write_cdb.c
@@ -40,7 +40,7 @@ int service_resolve_write_cdb(cdbmaker *c, resolve_service_t *sres)
     !resolve_add_cdb_uint(c, "owner", sres->owner) ||
     !resolve_add_cdb(c, "treename", str, sres->treename, 1) ||
     !resolve_add_cdb(c, "user", str, sres->user, 1) ||
-    !resolve_add_cdb(c, "inmodule", str, sres->inmodule, 1) ||
+    !resolve_add_cdb(c, "inns", str, sres->inns, 1) ||
     !resolve_add_cdb_uint(c, "enabled", sres->enabled) ||
 
     // path