Index: uspace/lib/c/include/sys/types.h
===================================================================
--- uspace/lib/c/include/sys/types.h	(revision a6fc88aa460096502eae43ccce7f29d4eed95e58)
+++ uspace/lib/c/include/sys/types.h	(revision 8fe46a0f40ff74ca91e8c0f7ece6d2b75eac9029)
@@ -38,6 +38,4 @@
 #include <libarch/types.h>
 
-typedef unsigned int mode_t;
-
 /** Relative offset */
 typedef int64_t off64_t;
Index: uspace/lib/posix/include/posix/sys/stat.h
===================================================================
--- uspace/lib/posix/include/posix/sys/stat.h	(revision a6fc88aa460096502eae43ccce7f29d4eed95e58)
+++ uspace/lib/posix/include/posix/sys/stat.h	(revision 8fe46a0f40ff74ca91e8c0f7ece6d2b75eac9029)
@@ -115,5 +115,5 @@
 	__POSIX_DEF__(dev_t)     st_dev;     /* ID of device containing file */
 	__POSIX_DEF__(ino_t)     st_ino;     /* inode number */
-	mode_t          st_mode;    /* protection */
+	__POSIX_DEF__(mode_t)    st_mode;    /* protection */
 	__POSIX_DEF__(nlink_t)   st_nlink;   /* number of hard links */
 	__POSIX_DEF__(uid_t)     st_uid;     /* user ID of owner */
@@ -131,7 +131,7 @@
 extern int __POSIX_DEF__(lstat)(const char *restrict path, struct __POSIX_DEF__(stat) *restrict st);
 extern int __POSIX_DEF__(stat)(const char *restrict path, struct __POSIX_DEF__(stat) *restrict st);
-extern int __POSIX_DEF__(chmod)(const char *path, mode_t mode);
-extern mode_t __POSIX_DEF__(umask)(mode_t mask);
-extern int __POSIX_DEF__(mkdir)(const char *path, mode_t mode);
+extern int __POSIX_DEF__(chmod)(const char *path, __POSIX_DEF__(mode_t) mode);
+extern __POSIX_DEF__(mode_t) __POSIX_DEF__(umask)(__POSIX_DEF__(mode_t) mask);
+extern int __POSIX_DEF__(mkdir)(const char *path, __POSIX_DEF__(mode_t) mode);
 
 
Index: uspace/lib/posix/include/posix/sys/types.h
===================================================================
--- uspace/lib/posix/include/posix/sys/types.h	(revision a6fc88aa460096502eae43ccce7f29d4eed95e58)
+++ uspace/lib/posix/include/posix/sys/types.h	(revision 8fe46a0f40ff74ca91e8c0f7ece6d2b75eac9029)
@@ -53,4 +53,5 @@
 typedef int64_t __POSIX_DEF__(pid_t);
 typedef sysarg_t __POSIX_DEF__(dev_t);
+typedef unsigned int __POSIX_DEF__(mode_t);
 
 /* PThread Types */
Index: uspace/lib/posix/source/fcntl.c
===================================================================
--- uspace/lib/posix/source/fcntl.c	(revision a6fc88aa460096502eae43ccce7f29d4eed95e58)
+++ uspace/lib/posix/source/fcntl.c	(revision 8fe46a0f40ff74ca91e8c0f7ece6d2b75eac9029)
@@ -105,9 +105,9 @@
 {
 	int rc;
-	mode_t posix_mode = 0;
+	posix_mode_t posix_mode = 0;
 	if (posix_flags & O_CREAT) {
 		va_list args;
 		va_start(args, posix_flags);
-		posix_mode = va_arg(args, mode_t);
+		posix_mode = va_arg(args, posix_mode_t);
 		va_end(args);
 		(void) posix_mode;
Index: uspace/lib/posix/source/sys/stat.c
===================================================================
--- uspace/lib/posix/source/sys/stat.c	(revision a6fc88aa460096502eae43ccce7f29d4eed95e58)
+++ uspace/lib/posix/source/sys/stat.c	(revision 8fe46a0f40ff74ca91e8c0f7ece6d2b75eac9029)
@@ -124,5 +124,5 @@
  * @return Zero on success, -1 otherwise.
  */
-int posix_chmod(const char *path, mode_t mode)
+int posix_chmod(const char *path, posix_mode_t mode)
 {
 	/* HelenOS doesn't support permissions, return success. */
@@ -137,5 +137,5 @@
  * @return Previous file mode creation mask.
  */
-mode_t posix_umask(mode_t mask)
+posix_mode_t posix_umask(posix_mode_t mask)
 {
 	/* HelenOS doesn't support permissions, return empty mask. */
@@ -150,5 +150,5 @@
  * @return Zero on success, -1 otherwise.
  */
-int posix_mkdir(const char *path, mode_t mode)
+int posix_mkdir(const char *path, posix_mode_t mode)
 {
 	int rc = rcerrno(vfs_link_path, path, KIND_DIRECTORY, NULL);
