diff --git a/man/systemd.unit.xml b/man/systemd.unit.xml
index 4e2590d006..4437510df7 100644
--- a/man/systemd.unit.xml
+++ b/man/systemd.unit.xml
@@ -691,7 +691,7 @@
is prefixed with an exclamation mark
(!), the test is negated, and the unit
is only started if the path does not
- exist. The test follows symlinks.
+ exist.
ConditionPathExistsGlob=
works in a similar way, but checks for
the existence of at least one file or
@@ -701,9 +701,8 @@
is similar to
ConditionPathExists=
but verifies whether a certain path
- exists and is a directory. It does not
- follow
- symlinks. ConditionPathIsMountPoint=
+ exists and is a
+ directory. ConditionPathIsMountPoint=
is similar to
ConditionPathExists=
but verifies whether a certain path
@@ -713,7 +712,7 @@
ConditionPathExists=
but verifies whether a certain path
exists, is a regular file and marked
- executable. It follows symlinks.
+ executable.
ConditionDirectoryNotEmpty=
is similar to
ConditionPathExists=
@@ -781,7 +780,8 @@
prefix an argument with the pipe
symbol and an exclamation mark the
pipe symbol must be passed first, the
- exclamation second.
+ exclamation second. All path checks
+ follow symlinks.
diff --git a/src/condition.c b/src/condition.c
index 131b456806..7f8564966a 100644
--- a/src/condition.c
+++ b/src/condition.c
@@ -162,7 +162,7 @@ bool condition_test(Condition *c) {
case CONDITION_PATH_IS_DIRECTORY: {
struct stat st;
- if (lstat(c->parameter, &st) < 0)
+ if (stat(c->parameter, &st) < 0)
return !c->negate;
return S_ISDIR(st.st_mode) == !c->negate;
}