Something like this should fix the behavior:
diff --git a/src/argparse.c b/src/argparse.c index ef0c161..403c4a7 100644 --- a/src/argparse.c +++ b/src/argparse.c @@ -3000,7 +3000,13 @@ show_help (opttable_t *opts, unsigned int nopts, unsigned int flags) writestrings (0, "Options:", "\n", NULL); for (i=0; i < nopts; i++ ) { - s = map_fixed_string (_( opts[ordtbl[i]].description )); + if ((opts[ordtbl[i]].flags & ARGPARSE_OPT_HEADER) + && opts[ordtbl[i]].description + && !*opts[ordtbl[i]].description) + /* It's empty header. */ + s = opts[ordtbl[i]].description; + else + s = map_fixed_string (_( opts[ordtbl[i]].description )); if ( s && *s== '@' && !s[1] ) /* Hide this line. */ continue; if ( s && (opts[ordtbl[i]].flags & ARGPARSE_OPT_HEADER))