diff --git a/ArtyImplementation/shared/ZoneMessage.c b/ArtyImplementation/shared/ZoneMessage.c
index 47f1a5393e006aab36e7129a518341ff84aa1ce9..e2499609683e93e36e25e2778a8d06f750dfd815 100644
--- a/ArtyImplementation/shared/ZoneMessage.c
+++ b/ArtyImplementation/shared/ZoneMessage.c
@@ -3,14 +3,14 @@
 
 void initZoneMessage(struct ZoneMessage *zm)
 {
+	zm = malloc(sizeof(struct ZoneMessage));
 	zm->len = 0;
 	zm->data = NULL;
 }
 void freeZoneMessage(struct ZoneMessage *zm)
 {
-	if(zm->data != NULL)
-		free(zm->data);
-
+	zm->data;
+	free(zm);
 }
 
 void setZoneMessage(struct ZoneMessage *zm, char *data, uint16_t length)