diff --git a/slock.c b/slock.c
index 467937c..506231e 100644
--- a/slock.c
+++ b/slock.c
@@ -65,8 +65,11 @@ getpw(void) { /* only run as root */
 	const char *rval;
 	struct passwd *pw;
 
+	errno = 0;
 	pw = getpwuid(getuid());
-	if(!pw)
+	if (errno)
+		die("slock: getpwuid: %s\n", strerror(errno));
+	else if (!pw)
 		die("slock: cannot retrieve password entry (make sure to suid or sgid slock)\n");
 	endpwent();
 	rval =  pw->pw_passwd;