diff --git a/doc/grep.in.1 b/doc/grep.in.1
index 40c9586..a4e89eb 100644
--- a/doc/grep.in.1
+++ b/doc/grep.in.1
@@ -335,7 +335,7 @@ Print
 .I NUM
 lines of trailing context after matching lines.
 Places a line containing a group separator
-.RB ( \-\^\- )
+.RB "(described under " \-\^\-group\-separator )
 between contiguous groups of matches.
 With the
 .B \-o
@@ -348,7 +348,7 @@ Print
 .I NUM
 lines of leading context before matching lines.
 Places a line containing a group separator
-.RB ( \-\^\- )
+.RB "(described under " \-\^\-group\-separator )
 between contiguous groups of matches.
 With the
 .B \-o
@@ -361,13 +361,24 @@ Print
 .I NUM
 lines of output context.
 Places a line containing a group separator
-.RB ( \-\^\- )
+.RB "(described under " \-\^\-group\-separator )
 between contiguous groups of matches.
 With the
 .B \-o
 or
 .B \-\^\-only\-matching
 option, this has no effect and a warning is given.
+.TP
+.BI \-\^\-group\-separator= SEP
+Use
+.I SEP
+as a group separator. By default
+.I SEP
+is double hyphen
+.RB ( \-\^\- ).
+.TP
+.B \-\^\-no\-group-separator
+Use empty string as a group separator.
 .SS "File and Directory Selection"
 .TP
 .BR \-a ", " \-\^\-text
diff --git a/src/grep.c b/src/grep.c
index 8d22aec..a2de03d 100644
--- a/src/grep.c
+++ b/src/grep.c
@@ -1986,6 +1986,8 @@ Context control:\n\
 "));
       printf (_("\
   -NUM                      same as --context=NUM\n\
+      --group-separator=SEP use SEP as a group separator\n\
+      --no-group-separator  use empty string as a group separator\n\
       --color[=WHEN],\n\
       --colour[=WHEN]       use markers to highlight the matching strings;\n\
                             WHEN is 'always', 'never', or 'auto'\n\
