diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 2e1053092..4e4a413f7 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,11 @@
+2009-01-11  Corinna Vinschen  <corinna@vinschen.de>
+
+	* errno.cc (errmap): Set errno to ENOENT instead of ENOSHARE throughout.
+	* path.cc (path_conv::check): Set to and check for ENOENT instead of
+	ENOSHARE.
+
+	* path.cc (symlink_info::check): Fix Samba 3.2.x comment.
+
 2009-01-09  Corinna Vinschen  <corinna@vinschen.de>
 
 	* mount.cc (mount_info::from_fstab_line): Always convert drive
diff --git a/winsup/cygwin/errno.cc b/winsup/cygwin/errno.cc
index 2d8207cad..7aaf8c691 100644
--- a/winsup/cygwin/errno.cc
+++ b/winsup/cygwin/errno.cc
@@ -36,8 +36,8 @@ static NO_COPY struct
   X (ACTIVE_CONNECTIONS,	EAGAIN),
   X (ALREADY_EXISTS,		EEXIST),
   X (BAD_DEVICE,		ENODEV),
-  X (BAD_NETPATH,		ENOSHARE),
-  X (BAD_NET_NAME,		ENOSHARE),
+  X (BAD_NETPATH,		ENOENT),
+  X (BAD_NET_NAME,		ENOENT),
   X (BAD_PATHNAME,		ENOENT),
   X (BAD_PIPE,			EINVAL),
   X (BAD_UNIT,			ENODEV),
@@ -92,7 +92,7 @@ static NO_COPY struct
   X (MOD_NOT_FOUND,		ENOENT),
   X (MORE_DATA,			EMSGSIZE),
   X (NEGATIVE_SEEK,		EINVAL),
-  X (NETNAME_DELETED,		ENOSHARE),
+  X (NETNAME_DELETED,		ENOENT),
   X (NOACCESS,			EFAULT),
   X (NONPAGED_SYSTEM_RESOURCES,	EAGAIN),
   X (NONE_MAPPED,		EINVAL),
diff --git a/winsup/cygwin/path.cc b/winsup/cygwin/path.cc
index 2cca8f8e2..aa635103d 100644
--- a/winsup/cygwin/path.cc
+++ b/winsup/cygwin/path.cc
@@ -901,7 +901,7 @@ is_virtual_symlink:
 	      else
 		break;
 	    }
-	  else if (sym.error && sym.error != ENOENT && sym.error != ENOSHARE)
+	  else if (sym.error && sym.error != ENOENT)
 	    {
 	      error = sym.error;
 	      goto out;
@@ -996,7 +996,7 @@ out:
     }
   else if (isvirtual_dev (dev.devn) && fileattr == INVALID_FILE_ATTRIBUTES)
     {
-      error = dev.devn == FH_NETDRIVE ? ENOSHARE : ENOENT;
+      error = ENOENT;
       return;
     }
   else if (!need_directory || error)
@@ -2162,8 +2162,8 @@ symlink_info::check (char *path, const suffix_info *suffixes, unsigned opt,
 			     eabuf, easize);
       /* No right to access EAs or EAs not supported? */
       if (status == STATUS_ACCESS_DENIED || status == STATUS_EAS_NOT_SUPPORTED
-	  /* Or a bug in Samba 3.2.x when accessing a share's root dir which
-	     has EAs enabled? */
+	  /* Or a bug in Samba 3.2.x (x <= 7) when accessing a share's root dir
+	     which has EAs enabled? */
 	  || status == STATUS_INVALID_PARAMETER)
 	{
 	  no_ea = true;