diff --git a/exfat/mkfs/cbm.c b/exfat/mkfs/cbm.c
index 189ae32..0110b40 100644
--- a/exfat/mkfs/cbm.c
+++ b/exfat/mkfs/cbm.c
@@ -3,7 +3,7 @@
 	Clusters Bitmap creation code.
 
 	Free exFAT implementation.
-	Copyright (C) 2011-2014  Andrew Nayenko
+	Copyright (C) 2011-2013  Andrew Nayenko
 
 	This program is free software; you can redistribute it and/or modify
 	it under the terms of the GNU General Public License as published by
@@ -21,7 +21,6 @@
 */
 
 #include <limits.h>
-#include <string.h>
 #include "cbm.h"
 #include "fat.h"
 #include "uct.h"
@@ -46,23 +45,22 @@
 			DIV_ROUND_UP(uct.get_size(), get_cluster_size()) +
 			DIV_ROUND_UP(rootdir.get_size(), get_cluster_size());
 	size_t bitmap_size = DIV_ROUND_UP(allocated_clusters, CHAR_BIT);
-	bitmap_t* bitmap = malloc(BMAP_SIZE(bitmap_size));
+	uint8_t* bitmap = malloc(bitmap_size);
 	size_t i;
 
 	if (bitmap == NULL)
 	{
-		exfat_error("failed to allocate bitmap of %zu bytes",
-				BMAP_SIZE(bitmap_size));
+		exfat_error("failed to allocate bitmap of %zu bytes", bitmap_size);
 		return 1;
 	}
-	memset(bitmap, 0, BMAP_SIZE(bitmap_size));
 
 	for (i = 0; i < bitmap_size * CHAR_BIT; i++)
 		if (i < allocated_clusters)
 			BMAP_SET(bitmap, i);
+		else
+			BMAP_CLR(bitmap, i);
 	if (exfat_write(dev, bitmap, bitmap_size) < 0)
 	{
-		free(bitmap);
 		exfat_error("failed to write bitmap of %zu bytes", bitmap_size);
 		return 1;
 	}
