diff --git a/src/lib66/get_userhome.c b/src/lib66/get_userhome.c
index fa47b2c7cfd12e1a76741abbed45fb941d892734..aec37b707abebefed321949e32006435a80e2891 100644
--- a/src/lib66/get_userhome.c
+++ b/src/lib66/get_userhome.c
@@ -22,7 +22,8 @@ char const *get_userhome(uid_t myuid)
 {
 	char const *user_home = NULL ;
 	struct passwd *st = getpwuid(myuid) ;
-	
+	int e = errno ;
+	errno = 0 ;
 	if (!st)
 	{
 		if (!errno) errno = ESRCH ;
@@ -31,6 +32,6 @@ char const *get_userhome(uid_t myuid)
 	user_home = st->pw_dir ;
 
 	if (!user_home) return 0 ;
-
+	errno = e ;
 	return user_home ;
 }
diff --git a/src/lib66/set_ownerhome.c b/src/lib66/set_ownerhome.c
index 07a748a36942d61d2c80340eac6804e6fea8a649..39b8555f5261fd70222e6404e706803c174ea52b 100644
--- a/src/lib66/set_ownerhome.c
+++ b/src/lib66/set_ownerhome.c
@@ -26,10 +26,10 @@
 
 int set_ownerhome(stralloc *base,uid_t owner)
 {
-	char const *user_home = NULL ;
+	char const *user_home = 0 ;
 	int e = errno ;
 	struct passwd *st = getpwuid(owner) ;
-	
+	errno = 0 ;
 	if (!st)
 	{
 		if (!errno) errno = ESRCH ;
diff --git a/src/lib66/set_ownersysdir.c b/src/lib66/set_ownersysdir.c
index 624171dbebd95de522c6d897819e83b0c8c2c1b5..1647d9d8bc618f28373af69d6d9edc781dd6ba3b 100644
--- a/src/lib66/set_ownersysdir.c
+++ b/src/lib66/set_ownersysdir.c
@@ -29,7 +29,7 @@ int set_ownersysdir(stralloc *base, uid_t owner)
 	char const *user_home = NULL ;
 	int e = errno ;
 	struct passwd *st = getpwuid(owner) ;
-	
+	errno = 0 ;
 	if (!st)
 	{
 		if (!errno) errno = ESRCH ;