diff --git a/src/helper/fileio.c b/src/helper/fileio.c
index 742bc6892c3c81912e3c2479a8f01e2bc5a23772..b0ad446e179171c1768431d662494cc4a66620bb 100644
--- a/src/helper/fileio.c
+++ b/src/helper/fileio.c
@@ -295,16 +295,22 @@ int fileio_local_write(fileio_t *fileio, u32 size, u8 *buffer, u32 *size_written
 
 int fileio_write(fileio_t *fileio, u32 size, u8 *buffer, u32 *size_written)
 {
+	int retval;
+	
 	switch (fileio->location)
 	{
 		case FILEIO_LOCAL:
-			return fileio_local_write(fileio, size, buffer, size_written);
+			retval = fileio_local_write(fileio, size, buffer, size_written);
 			break;
 		default:
 			ERROR("BUG: should never get here");
+			exit(-1);
 	}
 	
-	return ERROR_OK;
+	if (retval == ERROR_OK)
+		fileio->size += *size_written;
+	
+	return retval;;
 }
 
 int fileio_write_u32(fileio_t *fileio, u32 data)