diff --git a/grep-2.22-help-align.patch b/grep-2.22-help-align.patch
deleted file mode 100644
index 5ad2db7..0000000
--- a/grep-2.22-help-align.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-diff --git a/src/grep.c b/src/grep.c
-index 7ffd122..6ef8a7c 100644
---- a/src/grep.c
-+++ b/src/grep.c
-@@ -1854,17 +1854,20 @@ Output control:\n\
-   -D, --devices=ACTION      how to handle devices, FIFOs and sockets;\n\
-                             ACTION is 'read' or 'skip'\n\
-   -r, --recursive           like --directories=recurse\n\
--  -R, --dereference-recursive  likewise, but follow all symlinks\n\
-+  -R, --dereference-recursive\n\
-+                            likewise, but follow all symlinks\n\
- "));
-       printf (_("\
--      --include=FILE_PATTERN  search only files that match FILE_PATTERN\n\
--      --exclude=FILE_PATTERN  skip files and directories matching\
-+      --include=FILE_PATTERN\n\
-+                            search only files that match FILE_PATTERN\n\
-+      --exclude=FILE_PATTERN\n\
-+                            skip files and directories matching\
-  FILE_PATTERN\n\
-       --exclude-from=FILE   skip files matching any file pattern from FILE\n\
--      --exclude-dir=PATTERN  directories that match PATTERN will be skipped.\n\
-+      --exclude-dir=PATTERN directories that match PATTERN will be skipped.\n\
- "));
-       printf (_("\
--  -L, --files-without-match  print only names of FILEs containing no match\n\
-+  -L, --files-without-match print only names of FILEs containing no match\n\
-   -l, --files-with-matches  print only names of FILEs containing matches\n\
-   -c, --count               print only a count of matching lines per FILE\n\
-   -T, --initial-tab         make tabs line up (if needed)\n\
diff --git a/grep-2.22-man-fix-gs.patch b/grep-2.22-man-fix-gs.patch
deleted file mode 100644
index 9c1aced..0000000
--- a/grep-2.22-man-fix-gs.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-diff --git a/doc/grep.in.1 b/doc/grep.in.1
-index ade11b4..6b91700 100644
---- a/doc/grep.in.1
-+++ b/doc/grep.in.1
-@@ -320,7 +320,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
-@@ -333,7 +333,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
-@@ -346,13 +346,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 73c3651..7ffd122 100644
---- a/src/grep.c
-+++ b/src/grep.c
-@@ -1878,6 +1878,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\
diff --git a/grep-2.23-help-align.patch b/grep-2.23-help-align.patch
new file mode 100644
index 0000000..5ad2db7
--- /dev/null
+++ b/grep-2.23-help-align.patch
@@ -0,0 +1,30 @@
+diff --git a/src/grep.c b/src/grep.c
+index 7ffd122..6ef8a7c 100644
+--- a/src/grep.c
++++ b/src/grep.c
+@@ -1854,17 +1854,20 @@ Output control:\n\
+   -D, --devices=ACTION      how to handle devices, FIFOs and sockets;\n\
+                             ACTION is 'read' or 'skip'\n\
+   -r, --recursive           like --directories=recurse\n\
+-  -R, --dereference-recursive  likewise, but follow all symlinks\n\
++  -R, --dereference-recursive\n\
++                            likewise, but follow all symlinks\n\
+ "));
+       printf (_("\
+-      --include=FILE_PATTERN  search only files that match FILE_PATTERN\n\
+-      --exclude=FILE_PATTERN  skip files and directories matching\
++      --include=FILE_PATTERN\n\
++                            search only files that match FILE_PATTERN\n\
++      --exclude=FILE_PATTERN\n\
++                            skip files and directories matching\
+  FILE_PATTERN\n\
+       --exclude-from=FILE   skip files matching any file pattern from FILE\n\
+-      --exclude-dir=PATTERN  directories that match PATTERN will be skipped.\n\
++      --exclude-dir=PATTERN directories that match PATTERN will be skipped.\n\
+ "));
+       printf (_("\
+-  -L, --files-without-match  print only names of FILEs containing no match\n\
++  -L, --files-without-match print only names of FILEs containing no match\n\
+   -l, --files-with-matches  print only names of FILEs containing matches\n\
+   -c, --count               print only a count of matching lines per FILE\n\
+   -T, --initial-tab         make tabs line up (if needed)\n\
diff --git a/grep-2.23-man-fix-gs.patch b/grep-2.23-man-fix-gs.patch
new file mode 100644
index 0000000..9c1aced
--- /dev/null
+++ b/grep-2.23-man-fix-gs.patch
@@ -0,0 +1,61 @@
+diff --git a/doc/grep.in.1 b/doc/grep.in.1
+index ade11b4..6b91700 100644
+--- a/doc/grep.in.1
++++ b/doc/grep.in.1
+@@ -320,7 +320,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
+@@ -333,7 +333,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
+@@ -346,13 +346,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 73c3651..7ffd122 100644
+--- a/src/grep.c
++++ b/src/grep.c
+@@ -1878,6 +1878,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\
diff --git a/grep.spec b/grep.spec
index ca95a22..2722ffc 100644
--- a/grep.spec
+++ b/grep.spec
@@ -14,9 +14,9 @@ Source2: colorgrep.csh
 Source3: GREP_COLORS
 Source4: grepconf.sh
 # upstream ticket 39444
-Patch0: grep-2.22-man-fix-gs.patch
+Patch0: grep-2.23-man-fix-gs.patch
 # upstream ticket 39445
-Patch1: grep-2.22-help-align.patch
+Patch1: grep-2.23-help-align.patch
 Requires(post): /sbin/install-info
 Requires(preun): /sbin/install-info