diff --git a/briar-android/src/main/java/org/briarproject/briar/android/contact/ConversationActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/contact/ConversationActivity.java
index 48a133462a55be0b081eb43b5091dc3622bf2e3f..2b7fdfc5333c1df5b8139efaa9dec5f611c3abfd 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/contact/ConversationActivity.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/contact/ConversationActivity.java
@@ -855,8 +855,9 @@ public class ConversationActivity extends BriarActivity
 
 	@UiThread
 	@Override
-	public void open(ConversationRequestItem item) {
-		if (item.getRequestedGroupId() == null) return;
+	public void openRequestedShareable(ConversationRequestItem item) {
+		if (item.getRequestedGroupId() == null)
+			throw new IllegalArgumentException();
 		Intent i;
 		switch (item.getRequestType()) {
 			case FORUM:
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/contact/ConversationAdapter.java b/briar-android/src/main/java/org/briarproject/briar/android/contact/ConversationAdapter.java
index b748a358c5078f551074bda21d898b30076b41d0..6bb414ad63bd1e848eea62e40a34f41b82f8bdc7 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/contact/ConversationAdapter.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/contact/ConversationAdapter.java
@@ -140,7 +140,7 @@ class ConversationAdapter
 
 		void respondToRequest(ConversationRequestItem item, boolean accept);
 
-		void open(ConversationRequestItem item);
+		void openRequestedShareable(ConversationRequestItem item);
 
 	}
 
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/contact/ConversationItem.java b/briar-android/src/main/java/org/briarproject/briar/android/contact/ConversationItem.java
index 56fdfa0588e0965a2ad08d6e318511ac4bbd7938..6adad35b62b986ecf98e84d36cb9a8bd6836b5dd 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/contact/ConversationItem.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/contact/ConversationItem.java
@@ -112,7 +112,7 @@ abstract class ConversationItem {
 			return new ConversationRequestItem(ir.getMessageId(),
 					ir.getGroupId(), INTRODUCTION, ir.getSessionId(), text,
 					ir.getMessage(), ir.getTimestamp(), ir.isRead(), null,
-					ir.wasAnswered());
+					ir.wasAnswered(), false);
 		}
 	}
 
@@ -203,7 +203,8 @@ abstract class ConversationItem {
 			return new ConversationRequestItem(ir.getId(),
 					ir.getGroupId(), type, ir.getSessionId(), text,
 					ir.getMessage(), ir.getTimestamp(), ir.isRead(),
-					ir.getInvitedGroupId(), !ir.isAvailable());
+					ir.getInvitedGroupId(), !ir.isAvailable(),
+					ir.canBeOpened());
 		}
 	}
 
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/contact/ConversationRequestItem.java b/briar-android/src/main/java/org/briarproject/briar/android/contact/ConversationRequestItem.java
index 54203056f0d1c1ca1c74ead2d304115db23d69f1..c0575eeb39236598a8a0a56ce5b73170193ffa0a 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/contact/ConversationRequestItem.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/contact/ConversationRequestItem.java
@@ -21,17 +21,19 @@ class ConversationRequestItem extends ConversationNoticeInItem {
 	private final GroupId requestedGroupId;
 	private final RequestType requestType;
 	private final SessionId sessionId;
-	private boolean answered;
+	private final boolean answered, canBeOpened;
 
 	ConversationRequestItem(MessageId id, GroupId groupId,
 			RequestType requestType, SessionId sessionId, String text,
 			@Nullable String msgText, long time, boolean read,
-			@Nullable GroupId requestedGroupId, boolean answered) {
+			@Nullable GroupId requestedGroupId, boolean answered,
+			boolean canBeOpened) {
 		super(id, groupId, text, msgText, time, read);
 		this.requestType = requestType;
 		this.sessionId = sessionId;
 		this.requestedGroupId = requestedGroupId;
 		this.answered = answered;
+		this.canBeOpened = canBeOpened;
 	}
 
 	RequestType getRequestType() {
@@ -51,8 +53,8 @@ class ConversationRequestItem extends ConversationNoticeInItem {
 		return answered;
 	}
 
-	void setAnswered(boolean answered) {
-		this.answered = answered;
+	public boolean canBeOpened() {
+		return canBeOpened;
 	}
 
 	@LayoutRes
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/contact/ConversationRequestViewHolder.java b/briar-android/src/main/java/org/briarproject/briar/android/contact/ConversationRequestViewHolder.java
index e60ad04e920553915091a78669604bddb578dab3..117995b4d6f3d4ba31de9a895b4a02f06de86c8e 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/contact/ConversationRequestViewHolder.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/contact/ConversationRequestViewHolder.java
@@ -11,7 +11,6 @@ import org.briarproject.briar.android.contact.ConversationAdapter.ConversationLi
 
 import static android.view.View.GONE;
 import static android.view.View.VISIBLE;
-import static org.briarproject.briar.android.contact.ConversationRequestItem.RequestType.INTRODUCTION;
 
 @UiThread
 @NotNullByDefault
@@ -33,27 +32,25 @@ class ConversationRequestViewHolder extends ConversationNoticeInViewHolder {
 		final ConversationRequestItem item =
 				(ConversationRequestItem) conversationItem;
 
-		if (item.getRequestType() == INTRODUCTION && item.wasAnswered()) {
-			acceptButton.setVisibility(GONE);
-			declineButton.setVisibility(GONE);
-		} else if (item.wasAnswered()) {
+		if (item.wasAnswered() && item.canBeOpened()) {
 			acceptButton.setVisibility(VISIBLE);
 			acceptButton.setText(R.string.open);
 			acceptButton.setOnClickListener(new OnClickListener() {
 				@Override
 				public void onClick(View v) {
-					item.setAnswered(true);
-					listener.open(item);
+					listener.openRequestedShareable(item);
 				}
 			});
 			declineButton.setVisibility(GONE);
+		} else if (item.wasAnswered()) {
+			acceptButton.setVisibility(GONE);
+			declineButton.setVisibility(GONE);
 		} else {
 			acceptButton.setVisibility(VISIBLE);
 			acceptButton.setText(R.string.accept);
 			acceptButton.setOnClickListener(new OnClickListener() {
 				@Override
 				public void onClick(View v) {
-					item.setAnswered(true);
 					listener.respondToRequest(item, true);
 				}
 			});
@@ -61,7 +58,6 @@ class ConversationRequestViewHolder extends ConversationNoticeInViewHolder {
 			declineButton.setOnClickListener(new OnClickListener() {
 				@Override
 				public void onClick(View v) {
-					item.setAnswered(true);
 					listener.respondToRequest(item, false);
 				}
 			});
diff --git a/briar-api/src/main/java/org/briarproject/briar/api/blog/BlogInvitationRequest.java b/briar-api/src/main/java/org/briarproject/briar/api/blog/BlogInvitationRequest.java
index 12b389134fd9613cc74d18f5426a95e9c60580a7..d0fabc9cb567257e5af283b1959f964b256bf358 100644
--- a/briar-api/src/main/java/org/briarproject/briar/api/blog/BlogInvitationRequest.java
+++ b/briar-api/src/main/java/org/briarproject/briar/api/blog/BlogInvitationRequest.java
@@ -16,12 +16,12 @@ public class BlogInvitationRequest extends InvitationRequest {
 
 	public BlogInvitationRequest(MessageId id, SessionId sessionId,
 			GroupId groupId, ContactId contactId, String blogAuthorName,
-			@Nullable String message, @Nullable GroupId blogId,
-			boolean available, long time, boolean local, boolean sent,
-			boolean seen, boolean read) {
+			@Nullable String message, GroupId blogId,
+			boolean available, boolean canBeOpened, long time,
+			boolean local, boolean sent, boolean seen, boolean read) {
 
 		super(id, sessionId, groupId, contactId, message, blogId, available,
-				time, local, sent, seen, read);
+				canBeOpened, time, local, sent, seen, read);
 		this.blogAuthorName = blogAuthorName;
 	}
 
diff --git a/briar-api/src/main/java/org/briarproject/briar/api/forum/ForumInvitationRequest.java b/briar-api/src/main/java/org/briarproject/briar/api/forum/ForumInvitationRequest.java
index ae45c67da4f94af8369a084d4bb5d2666ba21421..72c913c6f8163a4228561f2e1bc4edbefe401d69 100644
--- a/briar-api/src/main/java/org/briarproject/briar/api/forum/ForumInvitationRequest.java
+++ b/briar-api/src/main/java/org/briarproject/briar/api/forum/ForumInvitationRequest.java
@@ -19,11 +19,11 @@ public class ForumInvitationRequest extends InvitationRequest {
 	public ForumInvitationRequest(MessageId id, SessionId sessionId,
 			GroupId groupId, ContactId contactId, GroupId forumId,
 			String forumName, @Nullable String message, boolean available,
-			long time, boolean local, boolean sent, boolean seen,
-			boolean read) {
+			boolean canBeOpened, long time, boolean local, boolean sent,
+			boolean seen, boolean read) {
 
 		super(id, sessionId, groupId, contactId, message, forumId, available,
-				time, local, sent, seen, read);
+				canBeOpened, time, local, sent, seen, read);
 		this.forumName = forumName;
 	}
 
diff --git a/briar-api/src/main/java/org/briarproject/briar/api/privategroup/invitation/GroupInvitationRequest.java b/briar-api/src/main/java/org/briarproject/briar/api/privategroup/invitation/GroupInvitationRequest.java
index 7c379b04a0771606b116f89357e007026f2d8475..9ebdb224b6d93bdbf3d7026327917b5e126940ff 100644
--- a/briar-api/src/main/java/org/briarproject/briar/api/privategroup/invitation/GroupInvitationRequest.java
+++ b/briar-api/src/main/java/org/briarproject/briar/api/privategroup/invitation/GroupInvitationRequest.java
@@ -21,10 +21,10 @@ public class GroupInvitationRequest extends InvitationRequest {
 	public GroupInvitationRequest(MessageId id, SessionId sessionId,
 			GroupId groupId, ContactId contactId, @Nullable String message,
 			GroupId privateGroupId, String groupName, Author creator,
-			boolean available, long time, boolean local, boolean sent,
-			boolean seen, boolean read) {
+			boolean available, boolean canBeOpened, long time,
+			boolean local, boolean sent, boolean seen, boolean read) {
 		super(id, sessionId, groupId, contactId, message, privateGroupId,
-				available, time, local, sent, seen, read);
+				available, canBeOpened, time, local, sent, seen, read);
 		this.groupName = groupName;
 		this.creator = creator;
 	}
diff --git a/briar-api/src/main/java/org/briarproject/briar/api/sharing/InvitationMessage.java b/briar-api/src/main/java/org/briarproject/briar/api/sharing/InvitationMessage.java
index 5a7e39d4959e4b5b4d034f9ba4960272b10a3d6e..7dd97d0503b8596075010540cf0059225d0f3871 100644
--- a/briar-api/src/main/java/org/briarproject/briar/api/sharing/InvitationMessage.java
+++ b/briar-api/src/main/java/org/briarproject/briar/api/sharing/InvitationMessage.java
@@ -16,11 +16,10 @@ public abstract class InvitationMessage extends BaseMessageHeader {
 
 	private final SessionId sessionId;
 	private final ContactId contactId;
-	@Nullable
 	private final GroupId invitedGroupId;
 
 	public InvitationMessage(MessageId id, SessionId sessionId, GroupId groupId,
-			ContactId contactId, @Nullable GroupId invitedGroupId, long time,
+			ContactId contactId, GroupId invitedGroupId, long time,
 			boolean local, boolean sent, boolean seen, boolean read) {
 
 		super(id, groupId, time, local, read, sent, seen);
diff --git a/briar-api/src/main/java/org/briarproject/briar/api/sharing/InvitationRequest.java b/briar-api/src/main/java/org/briarproject/briar/api/sharing/InvitationRequest.java
index b0a99e184b2e85362af758cb6e47d974658b59aa..9acc01e7ca5893f6c0ce31c73c7cd26bbf255e64 100644
--- a/briar-api/src/main/java/org/briarproject/briar/api/sharing/InvitationRequest.java
+++ b/briar-api/src/main/java/org/briarproject/briar/api/sharing/InvitationRequest.java
@@ -15,17 +15,19 @@ public abstract class InvitationRequest extends InvitationMessage {
 
 	@Nullable
 	private final String message;
-	private final boolean available;
+	private final boolean available, canBeOpened;
 
 	public InvitationRequest(MessageId id, SessionId sessionId, GroupId groupId,
 			ContactId contactId, @Nullable String message,
-			@Nullable GroupId invitedGroupId, boolean available, long time,
-			boolean local, boolean sent, boolean seen, boolean read) {
-
+			GroupId invitedGroupId, boolean available,
+			boolean canBeOpened, long time, boolean local, boolean sent,
+			boolean seen, boolean read) {
 		super(id, sessionId, groupId, contactId, invitedGroupId, time, local,
 				sent, seen, read);
+		if (available && canBeOpened) throw new IllegalArgumentException();
 		this.message = message;
 		this.available = available;
+		this.canBeOpened = canBeOpened;
 	}
 
 	@Nullable
@@ -37,4 +39,8 @@ public abstract class InvitationRequest extends InvitationMessage {
 		return available;
 	}
 
+	public boolean canBeOpened() {
+		return canBeOpened;
+	}
+
 }
diff --git a/briar-api/src/main/java/org/briarproject/briar/api/sharing/InvitationResponse.java b/briar-api/src/main/java/org/briarproject/briar/api/sharing/InvitationResponse.java
index 15051e3b80103f5b6ab82287c2ef58932c54469b..248e443ffd2cba3528d0d2215bb22f88f9779347 100644
--- a/briar-api/src/main/java/org/briarproject/briar/api/sharing/InvitationResponse.java
+++ b/briar-api/src/main/java/org/briarproject/briar/api/sharing/InvitationResponse.java
@@ -6,7 +6,6 @@ import org.briarproject.bramble.api.sync.GroupId;
 import org.briarproject.bramble.api.sync.MessageId;
 import org.briarproject.briar.api.client.SessionId;
 
-import javax.annotation.Nullable;
 import javax.annotation.concurrent.Immutable;
 
 @Immutable
@@ -17,7 +16,7 @@ public abstract class InvitationResponse extends InvitationMessage {
 
 	public InvitationResponse(MessageId id, SessionId sessionId,
 			GroupId groupId, ContactId contactId,
-			@Nullable GroupId invitedGroupId, boolean accept, long time,
+			GroupId invitedGroupId, boolean accept, long time,
 			boolean local, boolean sent, boolean seen, boolean read) {
 
 		super(id, sessionId, groupId, contactId, invitedGroupId, time, local,
diff --git a/briar-core/src/main/java/org/briarproject/briar/privategroup/invitation/GroupInvitationManagerImpl.java b/briar-core/src/main/java/org/briarproject/briar/privategroup/invitation/GroupInvitationManagerImpl.java
index 645243f5c89ed01c24d5bbcc7ec91b32e2dbedcd..5570ffe41198db078cb978f59cd83e8a323dad26 100644
--- a/briar-core/src/main/java/org/briarproject/briar/privategroup/invitation/GroupInvitationManagerImpl.java
+++ b/briar-core/src/main/java/org/briarproject/briar/privategroup/invitation/GroupInvitationManagerImpl.java
@@ -405,11 +405,13 @@ class GroupInvitationManagerImpl extends ConversationClientImpl
 		SessionId sessionId = getSessionId(meta.getPrivateGroupId());
 		// Look up the invite message to get the details of the private group
 		InviteMessage invite = getInviteMessage(txn, m);
+		boolean canBeOpened = db.containsGroup(txn, invite.getPrivateGroupId());
 		return new GroupInvitationRequest(m, sessionId, contactGroupId, c,
 				invite.getMessage(), invite.getPrivateGroupId(),
 				invite.getGroupName(), invite.getCreator(),
-				meta.isAvailableToAnswer(), meta.getTimestamp(), meta.isLocal(),
-				status.isSent(), status.isSeen(), meta.isRead());
+				meta.isAvailableToAnswer(), canBeOpened, meta.getTimestamp(),
+				meta.isLocal(), status.isSent(), status.isSeen(),
+				meta.isRead());
 	}
 
 	private InviteMessage getInviteMessage(Transaction txn, MessageId m)
diff --git a/briar-core/src/main/java/org/briarproject/briar/privategroup/invitation/InviteeProtocolEngine.java b/briar-core/src/main/java/org/briarproject/briar/privategroup/invitation/InviteeProtocolEngine.java
index ba1a7623ad989b5829f1865b6893b89a9b9dec94..e89e57b53849568a519044caf579b12ffa6adbd6 100644
--- a/briar-core/src/main/java/org/briarproject/briar/privategroup/invitation/InviteeProtocolEngine.java
+++ b/briar-core/src/main/java/org/briarproject/briar/privategroup/invitation/InviteeProtocolEngine.java
@@ -319,7 +319,7 @@ class InviteeProtocolEngine extends AbstractProtocolEngine<InviteeSession> {
 		SessionId sessionId = new SessionId(m.getPrivateGroupId().getBytes());
 		return new GroupInvitationRequest(m.getId(), sessionId,
 				m.getContactGroupId(), c, m.getMessage(), m.getPrivateGroupId(),
-				m.getGroupName(), m.getCreator(), true, m.getTimestamp(), false,
-				false, true, false);
+				m.getGroupName(), m.getCreator(), true, false, m.getTimestamp(),
+				false, false, true, false);
 	}
 }
diff --git a/briar-core/src/main/java/org/briarproject/briar/sharing/BlogSharingManagerImpl.java b/briar-core/src/main/java/org/briarproject/briar/sharing/BlogSharingManagerImpl.java
index 721b633236a585cb144c049f8890db9f5cc061d2..3b0c0d9846f96869c9f2c943c6dd687433d4a724 100644
--- a/briar-core/src/main/java/org/briarproject/briar/sharing/BlogSharingManagerImpl.java
+++ b/briar-core/src/main/java/org/briarproject/briar/sharing/BlogSharingManagerImpl.java
@@ -135,13 +135,13 @@ class BlogSharingManagerImpl extends
 	@Override
 	protected InvitationMessage createInvitationRequest(MessageId id,
 			BlogInvitation msg, ContactId contactId, GroupId blogId,
-			boolean available, long time, boolean local, boolean sent,
-			boolean seen, boolean read) {
+			boolean available, boolean canBeOpened, long time, boolean local,
+			boolean sent, boolean seen, boolean read) {
 
 		return new BlogInvitationRequest(id, msg.getSessionId(),
 				msg.getGroupId(), contactId, msg.getBlogAuthorName(),
-				msg.getMessage(), blogId, available, time, local, sent, seen,
-				read);
+				msg.getMessage(), blogId, available, canBeOpened, time, local,
+				sent, seen, read);
 	}
 
 	@Override
@@ -345,8 +345,8 @@ class BlogSharingManagerImpl extends
 							localState.getSessionId(),
 							localState.getContactGroupId(), contactId,
 							blog.getAuthor().getName(), msg,
-							localState.getShareableId(), true, time, false,
-							false, false, false);
+							localState.getShareableId(), true, false, time,
+							false, false, false, false);
 			return new BlogInvitationRequestReceivedEvent(blog, contactId,
 					request);
 		}
diff --git a/briar-core/src/main/java/org/briarproject/briar/sharing/ForumSharingManagerImpl.java b/briar-core/src/main/java/org/briarproject/briar/sharing/ForumSharingManagerImpl.java
index 75148d8a7455b1172dc505bf9fcf547ceabb25ef..c845f2c5f2e448b38062a5104890787e450466b5 100644
--- a/briar-core/src/main/java/org/briarproject/briar/sharing/ForumSharingManagerImpl.java
+++ b/briar-core/src/main/java/org/briarproject/briar/sharing/ForumSharingManagerImpl.java
@@ -83,11 +83,12 @@ class ForumSharingManagerImpl extends
 	@Override
 	protected InvitationMessage createInvitationRequest(MessageId id,
 			ForumInvitation msg, ContactId contactId, GroupId forumId,
-			boolean available, long time, boolean local, boolean sent,
-			boolean seen, boolean read) {
+			boolean available, boolean canBeOpened, long time,
+			boolean local, boolean sent, boolean seen, boolean read) {
 		return new ForumInvitationRequest(id, msg.getSessionId(),
 				msg.getGroupId(), contactId, forumId, msg.getForumName(),
-				msg.getMessage(), available, time, local, sent, seen, read);
+				msg.getMessage(), available, canBeOpened, time, local, sent,
+				seen, read);
 	}
 
 	@Override
@@ -272,7 +273,7 @@ class ForumSharingManagerImpl extends
 					localState.getInvitationId(), localState.getSessionId(),
 					localState.getContactGroupId(), contactId,
 					localState.getShareableId(), forum.getName(), msg, true,
-					time, false, false, false, false);
+					false, time, false, false, false, false);
 			return new ForumInvitationRequestReceivedEvent(forum, contactId,
 					request);
 		}
diff --git a/briar-core/src/main/java/org/briarproject/briar/sharing/SharingManagerImpl.java b/briar-core/src/main/java/org/briarproject/briar/sharing/SharingManagerImpl.java
index b383a36e82841c9ff253865be663ef4ff202a163..c6be693e5d8b5e000ad35e88b1e7984058da49f2 100644
--- a/briar-core/src/main/java/org/briarproject/briar/sharing/SharingManagerImpl.java
+++ b/briar-core/src/main/java/org/briarproject/briar/sharing/SharingManagerImpl.java
@@ -126,7 +126,8 @@ abstract class SharingManagerImpl<S extends Shareable, I extends Invitation, IS
 
 	protected abstract InvitationMessage createInvitationRequest(MessageId id,
 			I msg, ContactId contactId, GroupId shareableId, boolean available,
-			long time, boolean local, boolean sent, boolean seen, boolean read);
+			boolean canBeOpened, long time, boolean local, boolean sent,
+			boolean seen, boolean read);
 
 	protected abstract InvitationMessage createInvitationResponse(MessageId id,
 			SessionId sessionId, GroupId groupId, ContactId contactId,
@@ -395,7 +396,7 @@ abstract class SharingManagerImpl<S extends Shareable, I extends Invitation, IS
 					long time = d.getLong(TIME);
 					boolean local = d.getBoolean(LOCAL);
 					boolean read = d.getBoolean(MSG_KEY_READ, false);
-					boolean available = false;
+					boolean available = false, canBeOpened = false;
 
 					if (type == SHARE_MSG_TYPE_INVITATION) {
 						I msg = getIFactory().build(group.getId(), d);
@@ -407,12 +408,16 @@ abstract class SharingManagerImpl<S extends Shareable, I extends Invitation, IS
 								continue;
 							available = ((InviteeSessionState) s).getState() ==
 									AWAIT_LOCAL_RESPONSE;
+							if (!available) {
+								canBeOpened = db.containsGroup(txn,
+										s.getShareableId());
+							}
 						}
 						InvitationMessage im =
 								createInvitationRequest(m.getKey(), msg,
 										contactId, s.getShareableId(),
-										available, time, local, status.isSent(),
-										status.isSeen(), read);
+										available, canBeOpened, time, local,
+										status.isSent(), status.isSeen(), read);
 						list.add(im);
 					} else if (type == SHARE_MSG_TYPE_ACCEPT ||
 							type == SHARE_MSG_TYPE_DECLINE) {
diff --git a/briar-core/src/test/java/org/briarproject/briar/privategroup/invitation/GroupInvitationManagerImplTest.java b/briar-core/src/test/java/org/briarproject/briar/privategroup/invitation/GroupInvitationManagerImplTest.java
index aa1f95ae614b9248f9296d7739e36f29ff6ce56b..620775b541444874f9276567a926a8a682f88354 100644
--- a/briar-core/src/test/java/org/briarproject/briar/privategroup/invitation/GroupInvitationManagerImplTest.java
+++ b/briar-core/src/test/java/org/briarproject/briar/privategroup/invitation/GroupInvitationManagerImplTest.java
@@ -640,13 +640,17 @@ public class GroupInvitationManagerImplTest extends BrambleMockTestCase {
 				new HashMap<MessageId, BdfDictionary>();
 		results.put(message.getId(), meta);
 		results.put(messageId2, meta2);
-		long time1 = 1L, time2 = 2L;
+		final long time1 = 1L, time2 = 2L;
 		final MessageMetadata messageMetadata1 =
 				new MessageMetadata(INVITE, privateGroup.getId(), time1, true,
-						true, true, true);
+						true, true, false);
 		final MessageMetadata messageMetadata2 =
 				new MessageMetadata(JOIN, privateGroup.getId(), time2, true,
 						true, true, true);
+		final InviteMessage invite =
+				new InviteMessage(message.getId(), contactGroup.getId(),
+						privateGroup.getId(), time1, "name", author,
+						new byte[0], null, new byte[0]);
 
 		context.checking(new Expectations() {{
 			oneOf(db).startTransaction(true);
@@ -669,6 +673,9 @@ public class GroupInvitationManagerImplTest extends BrambleMockTestCase {
 			oneOf(clientHelper).toList(message);
 			will(returnValue(body));
 			oneOf(messageParser).parseInviteMessage(message, body);
+			will(returnValue(invite));
+			oneOf(db).containsGroup(txn, privateGroup.getId());
+			will(returnValue(true));
 			// second message
 			oneOf(messageParser).parseMetadata(meta2);
 			will(returnValue(messageMetadata2));