Index: uspace/srv/fs/fat/fat_fat.c
===================================================================
--- uspace/srv/fs/fat/fat_fat.c	(revision aa2ea13ab01522f98268028b92e4eb434a507e4a)
+++ uspace/srv/fs/fat/fat_fat.c	(revision 0a51029fc6a0f62c7212f6bc2b39bc647abdd7d9)
@@ -474,5 +474,5 @@
 	int rc;
 
-	for (fatno = FAT1 + 1; fatno < bs->fatcnt; fatno++) {
+	for (fatno = FAT1 + 1; fatno < FATCNT(bs); fatno++) {
 		for (c = 0; c < nclsts; c++) {
 			rc = fat_set_cluster(bs, devmap_handle, fatno, lifo[c],
@@ -584,5 +584,5 @@
 		if (rc != EOK)
 			return rc;
-		for (fatno = FAT1; fatno < bs->fatcnt; fatno++) {
+		for (fatno = FAT1; fatno < FATCNT(bs); fatno++) {
 			rc = fat_set_cluster(bs, devmap_handle, fatno, firstc,
 			    FAT_CLST_RES0);
@@ -630,5 +630,5 @@
 		}
 
-		for (fatno = FAT1; fatno < bs->fatcnt; fatno++) {
+		for (fatno = FAT1; fatno < FATCNT(bs); fatno++) {
 			rc = fat_set_cluster(bs, nodep->idx->devmap_handle,
 			    fatno, lastc, mcl);
@@ -683,5 +683,5 @@
 
 		/* Terminate the cluster chain in all copies of FAT. */
-		for (fatno = FAT1; fatno < bs->fatcnt; fatno++) {
+		for (fatno = FAT1; fatno < FATCNT(bs); fatno++) {
 			rc = fat_set_cluster(bs, devmap_handle, fatno, lcl,
 			    clst_last1);
Index: uspace/srv/fs/fat/fat_ops.c
===================================================================
--- uspace/srv/fs/fat/fat_ops.c	(revision aa2ea13ab01522f98268028b92e4eb434a507e4a)
+++ uspace/srv/fs/fat/fat_ops.c	(revision 0a51029fc6a0f62c7212f6bc2b39bc647abdd7d9)
@@ -1055,8 +1055,9 @@
 
 	rootp->type = FAT_DIRECTORY;
-	rootp->firstc = FAT_CLST_ROOT;
+	rootp->firstc = (FAT_IS_FAT32(bs) ? bs->fat32.root_cluster : FAT_CLST_ROOT);
 	rootp->refcnt = 1;
 	rootp->lnkcnt = 0;	/* FS root is not linked */
-	rootp->size = RDE(bs) * sizeof(fat_dentry_t);
+	rootp->size = (FAT_IS_FAT32(bs) ? SPC(bs)*BPS(bs) : 
+	    RDE(bs) * sizeof(fat_dentry_t));
 	rootp->idx = ridxp;
 	ridxp->nodep = rootp;
