diff --git a/briar-core/src/org/briarproject/messaging/GroupReader.java b/briar-core/src/org/briarproject/messaging/GroupReader.java
index 66ff9e44ed4176ec260e8ce09ebed2e5b6703c21..771bfe6e648da54b28047422a1b6e43e2a8ffad1 100644
--- a/briar-core/src/org/briarproject/messaging/GroupReader.java
+++ b/briar-core/src/org/briarproject/messaging/GroupReader.java
@@ -1,11 +1,12 @@
 package org.briarproject.messaging;
 
-import static org.briarproject.api.AuthorConstants.MAX_PUBLIC_KEY_LENGTH;
+import static org.briarproject.api.messaging.MessagingConstants.GROUP_SALT_LENGTH;
 import static org.briarproject.api.messaging.MessagingConstants.MAX_GROUP_NAME_LENGTH;
 import static org.briarproject.api.messaging.Types.GROUP;
 
 import java.io.IOException;
 
+import org.briarproject.api.FormatException;
 import org.briarproject.api.crypto.CryptoComponent;
 import org.briarproject.api.crypto.MessageDigest;
 import org.briarproject.api.messaging.Group;
@@ -28,13 +29,13 @@ class GroupReader implements StructReader<Group> {
 		r.addConsumer(digesting);
 		r.readStructStart(GROUP);
 		String name = r.readString(MAX_GROUP_NAME_LENGTH);
-		byte[] publicKey = null;
-		if(r.hasNull()) r.readNull();
-		else publicKey = r.readBytes(MAX_PUBLIC_KEY_LENGTH);
+		if(name.length() == 0) throw new FormatException();
+		byte[] salt = r.readBytes(GROUP_SALT_LENGTH);
+		if(salt.length != GROUP_SALT_LENGTH) throw new FormatException();
 		r.readStructEnd();
 		r.removeConsumer(digesting);
 		// Build and return the group
 		GroupId id = new GroupId(messageDigest.digest());
-		return new Group(id, name, publicKey);
+		return new Group(id, name, salt);
 	}
 }