diff --git a/src/66/66-boot.c b/src/66/66-boot.c
index 76ed278cf154e1889a9d2ea8dc3b07bc2c70a4ae..62be8f22cf3bad4b976bc98e3f5bbeea7ac9ba4c 100644
--- a/src/66/66-boot.c
+++ b/src/66/66-boot.c
@@ -446,7 +446,7 @@ static inline void run_stage2 (char const *const *envp, size_t envlen, char cons
 
     setsid() ;
 
-    if (catch_log) {
+    if (!catch_log) {
 
         close(notifpipe[1]) ;
         wait_for_notif(notifpipe[0]) ;
@@ -468,8 +468,10 @@ static inline void run_stage2 (char const *const *envp, size_t envlen, char cons
 
     size_t tlen = sacmdline.len ;
     char t[tlen + 1] ;
-    auto_strings(t,sacmdline.s) ;
+    memcpy(t,sacmdline.s,tlen) ;
+    t[tlen] = 0 ;
     stralloc_free(&sacmdline) ;
+
     xmexec_fm(newargv, envp, envlen, t, tlen) ;
 }