diff --git a/src/lib66/module/parse_module.c b/src/lib66/module/parse_module.c
index 63fb5c3eae6939f479cbd20598f4132eb2a06a8a..c084430dd31ab20c84018efc9e481660d741d5f8 100644
--- a/src/lib66/module/parse_module.c
+++ b/src/lib66/module/parse_module.c
@@ -123,11 +123,15 @@ void parse_module(resolve_service_t *res, resolve_service_t *ares, unsigned int
 
         auto_strings(copy, SS_SERVICE_ADMDIR, name) ;
 
+        copylen = strlen(copy) ;
+
     } else {
 
         if (!set_ownerhome_stack(copy))
             log_dieusys(LOG_EXIT_SYS, "unable to find the home directory of the user") ;
 
+        copylen = strlen(copy) ;
+
         auto_strings(copy + copylen, SS_SERVICE_USERDIR, name) ;
     }
 
@@ -167,8 +171,6 @@ void parse_module(resolve_service_t *res, resolve_service_t *ares, unsigned int
             log_dieusys(LOG_EXIT_SYS,"copy: ", dirname, " to: ", copy) ;
     }
 
-    copylen = strlen(copy) ;
-
     auto_strings(copy + copylen, "/", ainsta) ;
 
     /** remove the original service frontend file inside the copied directory