Index: uspace/app/netspeed/netspeed.c
===================================================================
--- uspace/app/netspeed/netspeed.c	(revision d7b7f5e312adb3acb6e7c2044551454dfd1e4019)
+++ uspace/app/netspeed/netspeed.c	(revision 1c0cef08b9f78743c012e71181a38265e7dec433)
@@ -63,7 +63,8 @@
 
 	int listen_sd = socket(PF_INET, sock_type, 0);
-	if (listen_sd < 0)
+	if (listen_sd < 0) {
 		fprintf(stderr, "socket failed: %s\n", str_error(rc));
 		return rc;
+	}
 	
 	rc = bind(listen_sd, (struct sockaddr *) &addr, sizeof(addr));
@@ -92,6 +93,5 @@
 			return conn_sd;
 		}
-	}
-	else {
+	} else {
 		conn_sd = listen_sd;
 	}
@@ -150,6 +150,5 @@
 		if (sock_type == SOCK_STREAM) {
 			rc = send(conn_sd, buf, bufsize, 0);
-		}
-		else {
+		} else {
 			rc = sendto(conn_sd, buf, bufsize, 0,
 			    (struct sockaddr *) &addr, sizeof(addr));
@@ -181,9 +180,7 @@
 	if (str_cmp(argv[1], "tcp") == 0) {
 		sock_type = SOCK_STREAM;
-	}
-	else if (str_cmp(argv[1], "udp") == 0) {
+	} else if (str_cmp(argv[1], "udp") == 0) {
 		sock_type = SOCK_DGRAM;
-	}
-	else {
+	} else {
 		fprintf(stderr, "Invalid socket type\n");
 		syntax_print();
@@ -266,6 +263,5 @@
 		if (rc != EOK)
 			fprintf(stderr, "Server failed: %s\n", str_error(rc));
-	}
-	else {
+	} else {
 		rc = client(sock_type, address, port, count, buf, bufsize);
 		if (rc != EOK)
Index: uspace/app/wavplay/dplay.c
===================================================================
--- uspace/app/wavplay/dplay.c	(revision d7b7f5e312adb3acb6e7c2044551454dfd1e4019)
+++ uspace/app/wavplay/dplay.c	(revision 1c0cef08b9f78743c012e71181a38265e7dec433)
@@ -151,5 +151,6 @@
 	    device_event_callback, pb);
 	if (ret != EOK) {
-		printf("Failed to register event callback.\n");
+		printf("Failed to register event callback: %s.\n",
+		    str_error(ret));
 		return;
 	}
@@ -285,5 +286,6 @@
 			    pb->f.sample_format);
 			if (ret != EOK) {
-				printf("Failed to start playback\n");
+				printf("Failed to start playback: %s\n",
+				    str_error(ret));
 				return;
 			}
@@ -291,5 +293,6 @@
 			ret = audio_pcm_get_buffer_pos(pb->device, &pos);
 			if (ret != EOK) {
-				printf("Failed to update position indicator\n");
+				printf("Failed to update position indicator "
+				   "%s\n", str_error(ret));
 			}
 		}
@@ -308,5 +311,6 @@
 		const int ret = audio_pcm_get_buffer_pos(pb->device, &pos);
 		if (ret != EOK) {
-			printf("Failed to update position indicator\n");
+			printf("Failed to update position indicator %s\n",
+			    str_error(ret));
 		}
 		getuptime(&time);
@@ -350,5 +354,5 @@
 	ret = audio_pcm_get_info_str(session, &info);
 	if (ret != EOK) {
-		printf("Failed to get PCM info.\n");
+		printf("Failed to get PCM info: %s.\n", str_error(ret));
 		goto close_session;
 	}
Index: uspace/app/wavplay/main.c
===================================================================
--- uspace/app/wavplay/main.c	(revision d7b7f5e312adb3acb6e7c2044551454dfd1e4019)
+++ uspace/app/wavplay/main.c	(revision 1c0cef08b9f78743c012e71181a38265e7dec433)
@@ -79,8 +79,12 @@
 	    &format.sampling_rate, &format.sample_format, &error);
 	if (ret != EOK) {
-		printf("Error parsing wav header: %s.\n", error);
+		printf("Error parsing `%s' wav header: %s.\n", filename, error);
 		fclose(source);
 		return EINVAL;
 	}
+
+	printf("File `%s' format: %u channel(s), %uHz, %s.\n", filename,
+	    format.channels, format.sampling_rate,
+	    pcm_sample_format_str(format.sample_format));
 
 	/* Allocate buffer and create new context */
@@ -136,8 +140,11 @@
 	    &format.sampling_rate, &format.sample_format, &error);
 	if (ret != EOK) {
-		printf("Error parsing wav header: %s.\n", error);
+		printf("Error parsing `%s' wav header: %s.\n", filename, error);
 		fclose(source);
 		return EINVAL;
 	}
+	printf("File `%s' format: %u channel(s), %uHz, %s.\n", filename,
+	    format.channels, format.sampling_rate,
+	    pcm_sample_format_str(format.sample_format));
 
 	/* Connect new playback context */
Index: uspace/app/wavplay/wave.c
===================================================================
--- uspace/app/wavplay/wave.c	(revision d7b7f5e312adb3acb6e7c2044551454dfd1e4019)
+++ uspace/app/wavplay/wave.c	(revision 1c0cef08b9f78743c012e71181a38265e7dec433)
@@ -81,8 +81,10 @@
 	}
 
-	if (uint16_t_le2host(header->subchunk1_size) != PCM_SUBCHUNK1_SIZE) {
+	if (uint32_t_le2host(header->subchunk1_size) != PCM_SUBCHUNK1_SIZE) {
+		//TODO subchunk 1 sizes other than 16 are allowed ( 18, 40)
+		//http://www-mmsp.ece.mcgill.ca/documents/AudioFormats/WAVE/WAVE.html
 		if (error)
 			*error = "invalid subchunk1 size";
-		return EINVAL;
+//		return EINVAL;
 	}
 
@@ -94,10 +96,14 @@
 
 	if (str_lcmp(header->subchunk2_id, SUBCHUNK2_ID, 4) != 0) {
+		//TODO basedd on subchunk1 size, we might be reading wrong
+		//offset
 		if (error)
 			*error = "invalid subchunk2 id";
-		return EINVAL;
+//		return EINVAL;
 	}
 
 
+	//TODO data and data_size are incorrect in extended wav formats
+	//pcm params are OK
 	if (data)
 		*data = header->data;
Index: uspace/lib/gui/window.c
===================================================================
--- uspace/lib/gui/window.c	(revision d7b7f5e312adb3acb6e7c2044551454dfd1e4019)
+++ uspace/lib/gui/window.c	(revision 1c0cef08b9f78743c012e71181a38265e7dec433)
@@ -66,7 +66,7 @@
 
 static pixel_t border_color = PIXEL(255, 0, 0, 0);
-static pixel_t header_bg_focus_color = PIXEL(255, 25, 25, 112);
+static pixel_t header_bg_focus_color = PIXEL(255, 88, 106, 196);
 static pixel_t header_fg_focus_color = PIXEL(255, 255, 255, 255);
-static pixel_t header_bg_unfocus_color = PIXEL(255, 70, 130, 180);
+static pixel_t header_bg_unfocus_color = PIXEL(255, 12, 57, 92);
 static pixel_t header_fg_unfocus_color = PIXEL(255, 255, 255, 255);
 
Index: uspace/srv/audio/hound/audio_device.c
===================================================================
--- uspace/srv/audio/hound/audio_device.c	(revision d7b7f5e312adb3acb6e7c2044551454dfd1e4019)
+++ uspace/srv/audio/hound/audio_device.c	(revision 1c0cef08b9f78743c012e71181a38265e7dec433)
@@ -162,5 +162,5 @@
 		}
 		audio_pcm_register_event_callback(dev->sess,
-		    device_event_callback, dev);\
+		    device_event_callback, dev);
 
 		/* Fill the buffer first. Fill the first two fragments,
Index: uspace/srv/fs/ext4fs/ext4fs_ops.c
===================================================================
--- uspace/srv/fs/ext4fs/ext4fs_ops.c	(revision d7b7f5e312adb3acb6e7c2044551454dfd1e4019)
+++ uspace/srv/fs/ext4fs/ext4fs_ops.c	(revision 1c0cef08b9f78743c012e71181a38265e7dec433)
@@ -876,6 +876,4 @@
 	if (rc != EOK)
 		return rc;
-	if (NULL == inst)
-		return ENOENT;
 
 	ext4_superblock_t *sb = inst->filesystem->superblock;
Index: uspace/srv/fs/mfs/mfs.h
===================================================================
--- uspace/srv/fs/mfs/mfs.h	(revision d7b7f5e312adb3acb6e7c2044551454dfd1e4019)
+++ uspace/srv/fs/mfs/mfs.h	(revision 1c0cef08b9f78743c012e71181a38265e7dec433)
@@ -44,4 +44,5 @@
 #include <errno.h>
 #include <assert.h>
+#include <stdbool.h>
 #include "../../vfs/vfs.h"
 
@@ -105,4 +106,14 @@
 	unsigned isearch;
 	unsigned zsearch;
+
+	/* Indicates wether if the cached number of free zones
+	 * is to be considered valid or not.
+	 */
+	bool nfree_zones_valid;
+	/* Cached number of free zones, used to avoid to scan
+	 * the whole bitmap every time the mfs_free_block_count()
+	 * is invoked.
+	 */
+	unsigned nfree_zones;
 };
 
Index: uspace/srv/fs/mfs/mfs_balloc.c
===================================================================
--- uspace/srv/fs/mfs/mfs_balloc.c	(revision d7b7f5e312adb3acb6e7c2044551454dfd1e4019)
+++ uspace/srv/fs/mfs/mfs_balloc.c	(revision 1c0cef08b9f78743c012e71181a38265e7dec433)
@@ -88,4 +88,11 @@
 {
 	int r = mfs_alloc_bit(inst, zone, BMAP_ZONE);
+	if (r != EOK)
+		return r;
+
+	/* Update the cached number of free zones */
+	struct mfs_sb_info *sbi = inst->sbi;
+	if (sbi->nfree_zones_valid)
+		sbi->nfree_zones--;
 
 	*zone += inst->sbi->firstdatazone - 1;
@@ -103,7 +110,18 @@
 mfs_free_zone(struct mfs_instance *inst, uint32_t zone)
 {
+	int r;
+
 	zone -= inst->sbi->firstdatazone - 1;
 
-	return mfs_free_bit(inst, zone, BMAP_ZONE);
+	r = mfs_free_bit(inst, zone, BMAP_ZONE);
+	if (r != EOK)
+		return r;
+
+	/* Update the cached number of free zones */
+	struct mfs_sb_info *sbi = inst->sbi;
+	if (sbi->nfree_zones_valid)
+		sbi->nfree_zones++;
+
+	return r;
 }
 
Index: uspace/srv/fs/mfs/mfs_ops.c
===================================================================
--- uspace/srv/fs/mfs/mfs_ops.c	(revision d7b7f5e312adb3acb6e7c2044551454dfd1e4019)
+++ uspace/srv/fs/mfs/mfs_ops.c	(revision 1c0cef08b9f78743c012e71181a38265e7dec433)
@@ -216,4 +216,6 @@
 	sbi->isearch = 0;
 	sbi->zsearch = 0;
+	sbi->nfree_zones_valid = false;
+	sbi->nfree_zones = 0;
 
 	if (version == MFS_VERSION_V3) {
@@ -1181,11 +1183,23 @@
 		return rc;
 
-	if (NULL == inst)
-		return ENOENT;
-
-	mfs_count_free_zones(inst, &block_free);
-	*count = block_free;
-
-	return EOK;
+	struct mfs_sb_info *sbi = inst->sbi;
+
+	if (!sbi->nfree_zones_valid) {
+		/* The cached number of free zones is not valid,
+		 * we need to scan the bitmap to retrieve the
+		 * current value.
+		 */
+
+		rc = mfs_count_free_zones(inst, &block_free);
+		if (rc != EOK)
+			return rc;
+
+		sbi->nfree_zones = block_free;
+		sbi->nfree_zones_valid = true;
+	}
+
+	*count = sbi->nfree_zones;
+
+	return rc;
 }
 
Index: uspace/srv/hid/compositor/compositor.c
===================================================================
--- uspace/srv/hid/compositor/compositor.c	(revision d7b7f5e312adb3acb6e7c2044551454dfd1e4019)
+++ uspace/srv/hid/compositor/compositor.c	(revision 1c0cef08b9f78743c012e71181a38265e7dec433)
@@ -2176,5 +2176,5 @@
 	
 	/* Color of the viewport background. Must be opaque. */
-	bg_color = PIXEL(255, 75, 70, 75);
+	bg_color = PIXEL(255, 69, 51, 103);
 	
 	/* Register compositor server. */
