Index: uspace/srv/fs/fat/fat_fat.h
===================================================================
--- uspace/srv/fs/fat/fat_fat.h	(revision ce8f4f447a7e1abe7fa084ed0f030d495f17524c)
+++ uspace/srv/fs/fat/fat_fat.h	(revision cb052b429564f6640c6f71d2f71d18c168401dbf)
@@ -50,4 +50,7 @@
 #define FAT16_CLST_LAST1  0xfff8
 #define FAT16_CLST_LAST8  0xffff
+#define FAT32_CLST_BAD    0x0ffffff7
+#define FAT32_CLST_LAST1  0x0ffffff8
+#define FAT32_CLST_LAST8  0x0fffffff
 
 #define FAT12_CLST_MAX    4085
@@ -72,11 +75,12 @@
 #define FAT_IS_FAT16(bs) \
     ((CC(bs) >= FAT12_CLST_MAX) && (CC(bs) < FAT16_CLST_MAX))
+#define FAT_IS_FAT32(bs)	(CC(bs) >= FAT16_CLST_MAX)
 
 #define FAT_CLST_LAST1(bs) \
-    (FAT_IS_FAT12(bs) ? FAT12_CLST_LAST1 : FAT16_CLST_LAST1)
+    (FAT_IS_FAT12(bs) ? FAT12_CLST_LAST1 : (FAT_IS_FAT32(bs) ? FAT32_CLST_LAST1 : FAT16_CLST_LAST1))
 #define FAT_CLST_LAST8(bs) \
-    (FAT_IS_FAT12(bs) ? FAT12_CLST_LAST8 : FAT16_CLST_LAST8)
+    (FAT_IS_FAT12(bs) ? FAT12_CLST_LAST8 : (FAT_IS_FAT32(bs) ? FAT32_CLST_LAST8 : FAT16_CLST_LAST8))
 #define FAT_CLST_BAD(bs) \
-    (FAT_IS_FAT12(bs) ? FAT12_CLST_BAD : FAT16_CLST_BAD)
+    (FAT_IS_FAT12(bs) ? FAT12_CLST_BAD : (FAT_IS_FAT32(bs) ? FAT32_CLST_BAD : FAT16_CLST_BAD))
 
 /* forward declarations */
Index: uspace/srv/fs/fat/fat_ops.c
===================================================================
--- uspace/srv/fs/fat/fat_ops.c	(revision ce8f4f447a7e1abe7fa084ed0f030d495f17524c)
+++ uspace/srv/fs/fat/fat_ops.c	(revision cb052b429564f6640c6f71d2f71d18c168401dbf)
@@ -1003,11 +1003,4 @@
 	}
 
-	/* Return NOT SUPPORTED if try to mount FAT32  */
-	if (!FAT_IS_FAT12(bs) && !FAT_IS_FAT16(bs)) {
-		block_fini(devmap_handle);
-		async_answer_0(rid, ENOTSUP);
-		return;
-	}
-
 	/* Do some simple sanity checks on the file system. */
 	rc = fat_sanity_check(bs, devmap_handle);
