Index: uspace/lib/libc/generic/async.c
===================================================================
--- uspace/lib/libc/generic/async.c	(revision e067dcdd6a37c4387105354ad2abdcce18138c6c)
+++ uspace/lib/libc/generic/async.c	(revision eb73a50a7c9c0264e01ac6afa6c37410632d035f)
@@ -1310,4 +1310,5 @@
 	    IPC_FF_ROUTE_FROM_ME);
 	if (retval != EOK) {
+		async_wait_for(msg, NULL);
 		ipc_answer_0(callid, retval);
 		return retval;
@@ -1495,4 +1496,5 @@
 	    IPC_FF_ROUTE_FROM_ME);
 	if (retval != EOK) {
+		async_wait_for(msg, NULL);
 		ipc_answer_0(callid, retval);
 		return retval;
Index: uspace/srv/fs/fat/fat_fat.c
===================================================================
--- uspace/srv/fs/fat/fat_fat.c	(revision e067dcdd6a37c4387105354ad2abdcce18138c6c)
+++ uspace/srv/fs/fat/fat_fat.c	(revision eb73a50a7c9c0264e01ac6afa6c37410632d035f)
@@ -361,5 +361,5 @@
 	uint16_t rscnt;
 	uint16_t sf;
-	uint16_t ts;
+	uint32_t ts;
 	unsigned rde;
 	unsigned rds;
@@ -379,5 +379,7 @@
 	sf = uint16_t_le2host(bs->sec_per_fat);
 	rde = uint16_t_le2host(bs->root_ent_max);
-	ts = uint16_t_le2host(bs->totsec16);
+	ts = (uint32_t) uint16_t_le2host(bs->totsec16);
+	if (ts == 0)
+		ts = uint32_t_le2host(bs->totsec32);
 
 	rds = (sizeof(fat_dentry_t) * rde) / bps;
