diff --git a/xen-mapcache.c b/xen-mapcache.c
index 57fe24d..1c3b5bf 100644
--- a/xen-mapcache.c
+++ b/xen-mapcache.c
@@ -107,7 +107,7 @@ void qemu_map_cache_init(void)
      size = mapcache->nr_buckets * sizeof (MapCacheEntry);
      size = (size + XC_PAGE_SIZE - 1) & ~(XC_PAGE_SIZE - 1);
      DPRINTF("qemu_map_cache_init, nr_buckets = %lx size %lu\n", 
mapcache->nr_buckets, size);
-    mapcache->entry = qemu_mallocz(size);
+    mapcache->entry = qemu_mallocz(size*sizeof(MapCacheEntry));
  }

