diff --git a/man/journalctl.xml b/man/journalctl.xml
index 109797776e..ae86c50d62 100644
--- a/man/journalctl.xml
+++ b/man/journalctl.xml
@@ -363,7 +363,9 @@
If the pattern is all lowercase, matching is case insensitive. Otherwise, matching is case
sensitive. This can be overridden with the option, see
- below.
+ below.
+
+ When used with , is implied.
@@ -540,7 +542,9 @@
Show the most recent journal events and limit the number of events shown. If
is used, this option is implied. The argument is a positive integer or
all to disable line limiting. The default value is 10 if no argument is
- given.
+ given.
+
+ When used with , is implied.
diff --git a/src/journal/journalctl.c b/src/journal/journalctl.c
index e10f0b7564..f148ea9144 100644
--- a/src/journal/journalctl.c
+++ b/src/journal/journalctl.c
@@ -1084,6 +1084,11 @@ static int parse_argv(int argc, char *argv[]) {
r = pattern_compile_and_log(arg_pattern, arg_case, &arg_compiled_pattern);
if (r < 0)
return r;
+
+ /* When --grep is used along with --lines, we don't know how many lines we can print.
+ * So we search backwards and count until enough lines have been printed or we hit the head. */
+ if (arg_lines >= 0)
+ arg_reverse = true;
}
return 1;