diff --git a/src/lib66/parse/parse_compute_resolve.c b/src/lib66/parse/parse_compute_resolve.c
index 5682c1db0041b0c7b6ea007ecf807e3eeb899a61..845584c66a484d0b17e3941de5483d5498d61c55 100644
--- a/src/lib66/parse/parse_compute_resolve.c
+++ b/src/lib66/parse/parse_compute_resolve.c
@@ -438,8 +438,6 @@ void parse_compute_resolve(unsigned int idx, resolve_service_t *ares, unsigned i
     res->path.status = compute_status(wres, info) ;
     res->path.servicedir = compute_servicedir(wres, info) ;
 
-    res->path.home = resolve_add_string(wres, info->base.s) ;
-
     /* live */
     res->live.livedir = resolve_add_string(wres, info->live.s) ;
 
diff --git a/src/lib66/parse/parse_frontend.c b/src/lib66/parse/parse_frontend.c
index c76b7c1cd763aa962dea83c279ca8e33674ea11c..6f2c1fa0d45a04e6c897c3ddd362dc77056a1727 100644
--- a/src/lib66/parse/parse_frontend.c
+++ b/src/lib66/parse/parse_frontend.c
@@ -204,7 +204,7 @@ int parse_frontend(char const *sv, resolve_service_t *ares, unsigned int *aresle
 
     res.owner = info->owner ;
     res.ownerstr = resolve_add_string(wres, info->ownerstr) ;
-
+    res.path.home = resolve_add_string(wres, info->base.s) ;
     res.path.frontend = resolve_add_string(wres, sv) ;
 
     /** logger is set by default. if service is a module
diff --git a/src/lib66/write/write_common.c b/src/lib66/write/write_common.c
index 2672c1cb812aa03c566f9198698419ebbbe8cfdb..f407098fbca15299d3f805e7ab1aebd5d89a3a75 100644
--- a/src/lib66/write/write_common.c
+++ b/src/lib66/write/write_common.c
@@ -71,8 +71,8 @@ int write_common(resolve_service_t *res, char const *dst)
         if (!write_uint(dst, "down-signal", res->execute.downsignal))
             log_warnusys_return(LOG_EXIT_ZERO, "write uint file down-signal") ;
 
-    /** environment */
-    if (res->environ.env) {
+    /** environment for module is already written by the regex_configure() function */
+    if (res->environ.env && res->type != TYPE_MODULE) {
 
         stralloc dst = STRALLOC_ZERO ;
         stralloc contents = STRALLOC_ZERO ;