debug("ext : %s\n", dirent->ext);
 }
 
+static __u8 num_of_fats;
 /*
  * Write fat buffer into block device
  */
                return -1;
        }
 
+       if (num_of_fats == 2) {
+               /* Update corresponding second FAT blocks */
+               startblock += mydata->fatlength;
+               if (disk_write(startblock, getsize, bufptr) < 0) {
+                       debug("error: writing second FAT blocks\n");
+                       return -1;
+               }
+       }
+
        return 0;
 }
 
 
        cursect = mydata->rootdir_sect
                = mydata->fat_sect + mydata->fatlength * bs.fats;
+       num_of_fats = bs.fats;
 
        mydata->sect_size = (bs.sector_size[1] << 8) + bs.sector_size[0];
        mydata->clust_size = bs.cluster_size;