Index: uspace/lib/c/generic/dirent.c
===================================================================
--- uspace/lib/c/generic/dirent.c	(revision d5c1051faf4391647834d99babdd4a44ee5d9700)
+++ uspace/lib/c/generic/dirent.c	(revision f04b5b3bf75e5d5987007f7a9d2cdd7d90bd5978)
@@ -114,11 +114,13 @@
 int closedir(DIR *dirp)
 {
-	int rc;
-	
-	rc = vfs_put(dirp->fd);
+	int rc = vfs_put(dirp->fd);
 	free(dirp);
 
-	/* On error errno was set by close() */
-	return rc;
+	if (rc == EOK) {
+		return 0;
+	} else {
+		errno = rc;
+		return -1;
+	}
 }
 
