diff --git a/src/lib66/exec/ssexec_restart.c b/src/lib66/exec/ssexec_restart.c
index c60e569c390a8d02d7becef181afec14a2df66bf..742f65864f23333ac20c250ee3148d48fef73b27 100644
--- a/src/lib66/exec/ssexec_restart.c
+++ b/src/lib66/exec/ssexec_restart.c
@@ -17,6 +17,7 @@
 #include <oblibs/log.h>
 #include <oblibs/types.h>
 #include <oblibs/graph.h>
+#include <oblibs/stack.h>
 
 #include <skalibs/sgetopt.h>
 
@@ -33,12 +34,12 @@ int ssexec_restart(int argc, char const *const *argv, ssexec_t *info)
 {
     log_flow() ;
 
-    int r, nargc = 0, n = 0 ;
+    int r, n = 0 ;
     uint32_t flag = 0 ;
     uint8_t siglen = 3 ;
     graph_t graph = GRAPH_ZERO ;
 
-    unsigned int areslen = 0, m = 0 ;
+    unsigned int areslen = 0 ;
     resolve_service_t ares[SS_MAX_SERVICE + 1] ;
     ss_state_t sta = STATE_ZERO ;
 
@@ -79,8 +80,6 @@ int ssexec_restart(int argc, char const *const *argv, ssexec_t *info)
     if ((svc_scandir_ok(info->scandir.s)) !=  1 )
         log_diesys(LOG_EXIT_SYS,"scandir: ", info->scandir.s, " is not running") ;
 
-    char const *nargv[argc] ;
-
     /** build the graph of the entire system */
     graph_build_service(&graph, ares, &areslen, info, flag) ;
 
@@ -99,16 +98,8 @@ int ssexec_restart(int argc, char const *const *argv, ssexec_t *info)
         if (service_is(&sta, STATE_FLAGS_ISSUPERVISED) == STATE_FLAGS_FALSE)
             /** nothing to do */
             log_warn_return(LOG_EXIT_ZERO, "service: ", argv[n], " is not supervised -- try to start it first using '66 start ", argv[n], "'") ;
-
-        if (ares[aresid].type == TYPE_ONESHOT) {
-            nargc++ ;
-            nargv[m++] = ares[aresid].sa.s + ares[aresid].name ;
-        }
     }
 
-    if (nargc)
-        nargv[m] = 0 ;
-
     char *sig[siglen] ;
     if (siglen > 3) {
 
@@ -125,39 +116,9 @@ int ssexec_restart(int argc, char const *const *argv, ssexec_t *info)
     }
 
     r = svc_send_wait(argv, argc, sig, siglen, info) ;
-    if (r)
-        goto err ;
-
-    /** s6-supervise do not deal with oneshot service:
-     * The previous send command will bring it down but
-     * s6-supervise will not bring it up automatically.
-     * Well, do it manually */
-    if (nargc) {
-
-        int verbo = VERBOSITY ;
-        VERBOSITY = 0 ;
-
-        if (siglen > 3) {
-
-            sig[0] = "-P" ;
-            sig[1] = "-wU" ;
-            sig[2] = "-u" ;
-            sig[3] = 0 ;
-
-        } else {
-
-            sig[0] = "-wU" ;
-            sig[1] = "-u" ;
-            sig[2] = 0 ;
-        }
-
-        r = svc_send_wait(nargv, nargc, sig, siglen, info) ;
-        VERBOSITY = verbo ;
-    }
 
-    err:
-        service_resolve_array_free(ares, areslen) ;
-        graph_free_all(&graph) ;
+    service_resolve_array_free(ares, areslen) ;
+    graph_free_all(&graph) ;
 
-        return r ;
+    return r ;
 }