diff --git a/src/lib66/parse/parse_rename_interdependences.c b/src/lib66/parse/parse_rename_interdependences.c
index f334a0bee5dd5fc99bae5410f5f98362e0ce998f..6b48433c5c5acecaa67cc2e487aee580159c2a1a 100644
--- a/src/lib66/parse/parse_rename_interdependences.c
+++ b/src/lib66/parse/parse_rename_interdependences.c
@@ -135,7 +135,7 @@ void parse_rename_interdependences(resolve_service_t *res, char const *prefix, s
 
                 c->res.logger.name = resolve_add_string(wres, logname) ;
 
-                c->res.logger.destination = compute_log_dir(wres, res) ;
+                c->res.logger.destination = compute_log_dir(wres, &c->res) ;
 
                 c->res.logger.execute.run.runas = c->res.logger.execute.run.runas ? resolve_add_string(wres, c->res.sa.s + c->res.logger.execute.run.runas) : resolve_add_string(wres, SS_LOGGER_RUNNER) ;
 
@@ -146,13 +146,14 @@ void parse_rename_interdependences(resolve_service_t *res, char const *prefix, s
                         log_die_nomem("stralloc") ;
                 }
 
+                free(wres) ;
+
             }
 
             if (sastr_cmp(&sa, c->res.sa.s + c->res.name) < 0 )
                 if (!sastr_add_string(&sa, c->res.sa.s + c->res.name))
                     log_die_nomem("stralloc") ;
         }
-        free(wres) ;
     }
 
     wres = resolve_set_struct(DATA_SERVICE, res) ;