Index: uspace/lib/c/generic/vfs/vfs.c
===================================================================
--- uspace/lib/c/generic/vfs/vfs.c	(revision f1d04b29c4d5f435d0eabfc231a48fc82a5f02b8)
+++ uspace/lib/c/generic/vfs/vfs.c	(revision cbfc8b7e42fca7bc3a198905bb54319967d451ca)
@@ -342,5 +342,5 @@
 }
 
-ssize_t read(int fildes, void *buf, size_t nbyte) 
+ssize_t read(int fildes, void *buf, size_t nbyte)
 {
 	sysarg_t rc;
@@ -348,8 +348,11 @@
 	aid_t req;
 	
+	if (nbyte > DATA_XFER_LIMIT)
+		nbyte = DATA_XFER_LIMIT;
+	
 	async_exch_t *exch = vfs_exchange_begin();
 	
 	req = async_send_1(exch, VFS_IN_READ, fildes, &answer);
-	rc = async_data_read_start(exch, (void *)buf, nbyte);
+	rc = async_data_read_start(exch, (void *) buf, nbyte);
 	if (rc != EOK) {
 		vfs_exchange_end(exch);
@@ -377,8 +380,11 @@
 	aid_t req;
 	
+	if (nbyte > DATA_XFER_LIMIT)
+		nbyte = DATA_XFER_LIMIT;
+	
 	async_exch_t *exch = vfs_exchange_begin();
 	
 	req = async_send_1(exch, VFS_IN_WRITE, fildes, &answer);
-	rc = async_data_write_start(exch, (void *)buf, nbyte);
+	rc = async_data_write_start(exch, (void *) buf, nbyte);
 	if (rc != EOK) {
 		vfs_exchange_end(exch);
