diff --git a/man/bootctl.xml b/man/bootctl.xml
index 3e1f9b588b..46b9738b14 100644
--- a/man/bootctl.xml
+++ b/man/bootctl.xml
@@ -60,18 +60,18 @@
- This option modifies the behaviour of status. Prints only the
- path to the EFI System Partition (ESP) to standard output and exits.
+ This option modifies the behaviour of status. Only prints the path
+ to the EFI System Partition (ESP) to standard output and exits.
- This option modifies the behaviour of status. Prints only the
- path to the Extended Boot Loader partition if it exists, and the path to the ESP otherwise to
- standard output and exit. This command is useful to determine where to place boot loader entries, as
- they are preferably placed in the Extended Boot Loader partition if it exists and in the ESP
- otherwise.
+ This option modifies the behaviour of status. Only prints the path
+ to the Extended Boot Loader partition if it exists, and the path to the ESP otherwise to standard
+ output and exit. This command is useful to determine where to place boot loader entries, as they are
+ preferably placed in the Extended Boot Loader partition if it exists and in the ESP otherwise.
+
diff --git a/src/boot/bootctl.c b/src/boot/bootctl.c
index c3ebdd7c4e..55924adf06 100644
--- a/src/boot/bootctl.c
+++ b/src/boot/bootctl.c
@@ -1067,10 +1067,16 @@ static int parse_argv(int argc, char *argv[]) {
break;
case 'p':
+ if (arg_print_dollar_boot_path)
+ return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
+ "--print-boot-path/-x cannot be combined with --print-esp-path/-p");
arg_print_esp_path = true;
break;
case 'x':
+ if (arg_print_esp_path)
+ return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
+ "--print-boot-path/-x cannot be combined with --print-esp-path/-p");
arg_print_dollar_boot_path = true;
break;