diff --git a/src/seq.c b/src/seq.c
index 81bb9fbe6..701d87d92 100644
--- a/src/seq.c
+++ b/src/seq.c
@@ -142,6 +142,19 @@ scan_arg (const char *arg)
 {
   operand ret;
 
+  /* Bail early if we encounter --help or --version */
+  int z = sizeof (long_options) / sizeof (struct option) - 2;
+  int y = z - 1;
+  if (!strncmp (arg, "--", 2) && !strcmp (&arg[2], long_options[y].name))
+    usage (EXIT_SUCCESS);
+  if (!strncmp (arg, "--", 2) && !strcmp (&arg[2], long_options[z].name))
+    {
+      switch (long_options[z].val)
+        {
+          case_GETOPT_VERSION_CHAR (PROGRAM_NAME, AUTHORS);
+        }
+    }
+
   if (! xstrtold (arg, NULL, &ret.value, c_strtold))
     {
       error (0, 0, _("invalid floating point argument: %s"), quote (arg));
