Index: uspace/lib/c/generic/dirent.c
===================================================================
--- uspace/lib/c/generic/dirent.c	(revision f77c1c90c1f223647872d5cefa2d86f63bc846d7)
+++ uspace/lib/c/generic/dirent.c	(revision 84a1a546f62a2ba0f913f8f1bfce8d4bc68d7aa4)
@@ -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;
+	}
 }
 
