diff --git a/src/include/66/ssexec.h b/src/include/66/ssexec.h
index cea8af4092f81802a162ce07611f0c180cadd312..bac0f569a7adfeab78092abe938a180fa0ffaa2b 100644
--- a/src/include/66/ssexec.h
+++ b/src/include/66/ssexec.h
@@ -245,6 +245,8 @@ extern char const *help_halt ;
 #define OPTS_SIGNAL_LEN (sizeof OPTS_SIGNAL - 1)
 #define OPTS_ENV "hc:s:VLr:e:i:"
 #define OPTS_ENV_LEN (sizeof OPTS_ENV - 1)
+#define OPTS_STATE "h"
+#define OPTS_STATE_LEN (sizeof OPTS_STATE - 1)
 
 #define OPTS_TREE_WRAPPER "h"
 #define OPTS_TREE_WRAPPER_LEN (sizeof OPTS_TREE_WRAPPER - 1)
diff --git a/src/lib66/exec/ssexec_state.c b/src/lib66/exec/ssexec_state.c
index cb28b86651746ceff161aeb60e13dc88eb991fb7..539f9ea391c4a9723d4a34db8b8a5315bc96f9cb 100644
--- a/src/lib66/exec/ssexec_state.c
+++ b/src/lib66/exec/ssexec_state.c
@@ -19,6 +19,7 @@
 #include <skalibs/types.h>
 #include <skalibs/lolstdio.h>
 #include <skalibs/buffer.h>
+#include <skalibs/sgetopt.h>
 
 #include <66/info.h>
 #include <66/resolve.h>
@@ -81,8 +82,27 @@ int ssexec_state(int argc, char const *const *argv, ssexec_t *info)
         "issupervised",
         "isup" } ;
 
-    argc-- ;
-    argv++ ;
+    {
+        subgetopt l = SUBGETOPT_ZERO ;
+
+        for (;;)
+        {
+            int opt = subgetopt_r(argc, argv, OPTS_ENABLE, &l) ;
+            if (opt == -1) break ;
+
+            switch (opt) {
+
+                case 'h' :
+
+                    info_help(info->help, info->usage) ;
+                    return 0 ;
+
+                default :
+                    log_usage(info->usage, "\n", info->help) ;
+            }
+        }
+        argc -= l.ind ; argv += l.ind ;
+    }
 
     if (!argc)
         log_usage(info->usage, "\n", info->help) ;