diff --git a/man/sd_seat_get_active.xml b/man/sd_seat_get_active.xml
index c5e6ddab02..3dd461f83f 100644
--- a/man/sd_seat_get_active.xml
+++ b/man/sd_seat_get_active.xml
@@ -105,8 +105,9 @@
one (NULL terminated) with the session
identifiers of the sessions and one with the user identifiers of
the Unix users the sessions belong to. An additional parameter may
- be used to return the number of entries in the latter array. The
- two arrays and the latter parameter may be passed as
+ be used to return the number of entries in the latter array. This
+ value is the same the return value, if the latter is nonnegative.
+ The two arrays and the last parameter may be passed as
NULL in case these values need not to be
determined. The arrays and the strings referenced by them need to
be freed with the libc
diff --git a/src/libsystemd/sd-login/sd-login.c b/src/libsystemd/sd-login/sd-login.c
index cdbdc37856..ed15efa104 100644
--- a/src/libsystemd/sd-login/sd-login.c
+++ b/src/libsystemd/sd-login/sd-login.c
@@ -723,7 +723,7 @@ _public_ int sd_seat_get_sessions(const char *seat, char ***sessions, uid_t **ui
r = parse_uid(k, b + i);
if (r < 0)
- continue;
+ return r;
i++;
}