diff --git a/briar-android-tests/src/test/java/org/briarproject/BlogSharingIntegrationTest.java b/briar-android-tests/src/test/java/org/briarproject/BlogSharingIntegrationTest.java
index bca45b25f81d71816dc280fd83ca0ad86252b88f..2cc0340bcd48593f8888a4734dbefab8c1920fcb 100644
--- a/briar-android-tests/src/test/java/org/briarproject/BlogSharingIntegrationTest.java
+++ b/briar-android-tests/src/test/java/org/briarproject/BlogSharingIntegrationTest.java
@@ -547,7 +547,7 @@ public class BlogSharingIntegrationTest extends BriarIntegrationTest {
 				BlogInvitationReceivedEvent event =
 						(BlogInvitationReceivedEvent) e;
 				eventWaiter.assertEquals(contactId1, event.getContactId());
-				Blog b = event.getBlog();
+				Blog b = event.getShareable();
 				try {
 					Contact c = contactManager0.getContact(contactId1);
 					blogSharingManager0.respondToInvitation(b, c, true);
@@ -589,7 +589,7 @@ public class BlogSharingIntegrationTest extends BriarIntegrationTest {
 						(BlogInvitationReceivedEvent) e;
 				requestReceived = true;
 				if (!answer) return;
-				Blog b = event.getBlog();
+				Blog b = event.getShareable();
 				try {
 					eventWaiter.assertEquals(1,
 							blogSharingManager1.getInvitations().size());
diff --git a/briar-android-tests/src/test/java/org/briarproject/ForumSharingIntegrationTest.java b/briar-android-tests/src/test/java/org/briarproject/ForumSharingIntegrationTest.java
index 306cc25dc1b37b06c5a8c0fe6e12b29c000c7a2c..6d2184a6aec574ad6ffec86bd58ab02ab6105f2f 100644
--- a/briar-android-tests/src/test/java/org/briarproject/ForumSharingIntegrationTest.java
+++ b/briar-android-tests/src/test/java/org/briarproject/ForumSharingIntegrationTest.java
@@ -939,7 +939,7 @@ public class ForumSharingIntegrationTest extends BriarTestCase {
 						(ForumInvitationReceivedEvent) e;
 				eventWaiter.assertEquals(contactId1, event.getContactId());
 				requestReceived = true;
-				Forum f = event.getForum();
+				Forum f = event.getShareable();
 				try {
 					Contact c = contactManager0.getContact(contactId1);
 					forumSharingManager0.respondToInvitation(f, c, true);
@@ -982,7 +982,7 @@ public class ForumSharingIntegrationTest extends BriarTestCase {
 						(ForumInvitationReceivedEvent) e;
 				requestReceived = true;
 				if (!answer) return;
-				Forum f = event.getForum();
+				Forum f = event.getShareable();
 				try {
 					eventWaiter.assertEquals(1,
 							forumSharingManager1.getInvitations().size());
diff --git a/briar-api/src/org/briarproject/api/event/BlogInvitationReceivedEvent.java b/briar-api/src/org/briarproject/api/event/BlogInvitationReceivedEvent.java
index 26a2ae097d81b4a7068661990191ca1db4aceb0e..2089e6c5d03c388c5bf8960bd5861eceddfadd60 100644
--- a/briar-api/src/org/briarproject/api/event/BlogInvitationReceivedEvent.java
+++ b/briar-api/src/org/briarproject/api/event/BlogInvitationReceivedEvent.java
@@ -5,17 +5,11 @@ import org.briarproject.api.contact.ContactId;
 import org.briarproject.api.sharing.InvitationRequest;
 
 public class BlogInvitationReceivedEvent extends
-		InvitationRequestReceivedEvent {
-
-	private final Blog blog;
+		InvitationRequestReceivedEvent<Blog> {
 
 	public BlogInvitationReceivedEvent(Blog blog, ContactId contactId,
 			InvitationRequest request) {
-		super(contactId, request);
-		this.blog = blog;
+		super(blog, contactId, request);
 	}
 
-	public Blog getBlog() {
-		return blog;
-	}
 }
diff --git a/briar-api/src/org/briarproject/api/event/ForumInvitationReceivedEvent.java b/briar-api/src/org/briarproject/api/event/ForumInvitationReceivedEvent.java
index 3077f91605de30b7a6d8bf105f7f058e754f995a..416979d2e400017a22adc914aafee71d992fb704 100644
--- a/briar-api/src/org/briarproject/api/event/ForumInvitationReceivedEvent.java
+++ b/briar-api/src/org/briarproject/api/event/ForumInvitationReceivedEvent.java
@@ -5,18 +5,11 @@ import org.briarproject.api.forum.Forum;
 import org.briarproject.api.forum.ForumInvitationRequest;
 
 public class ForumInvitationReceivedEvent extends
-		InvitationRequestReceivedEvent {
-
-	private final Forum forum;
+		InvitationRequestReceivedEvent<Forum> {
 
 	public ForumInvitationReceivedEvent(Forum forum, ContactId contactId,
 			ForumInvitationRequest request) {
-		super(contactId, request);
-		this.forum = forum;
-	}
-
-	public Forum getForum() {
-		return forum;
+		super(forum, contactId, request);
 	}
 
 }
diff --git a/briar-api/src/org/briarproject/api/event/GroupInvitationReceivedEvent.java b/briar-api/src/org/briarproject/api/event/GroupInvitationReceivedEvent.java
new file mode 100644
index 0000000000000000000000000000000000000000..f42b8886fb5b8be0e4df09c44ff8d69daea6d059
--- /dev/null
+++ b/briar-api/src/org/briarproject/api/event/GroupInvitationReceivedEvent.java
@@ -0,0 +1,15 @@
+package org.briarproject.api.event;
+
+import org.briarproject.api.contact.ContactId;
+import org.briarproject.api.forum.ForumInvitationRequest;
+import org.briarproject.api.privategroup.PrivateGroup;
+
+public class GroupInvitationReceivedEvent extends
+		InvitationRequestReceivedEvent<PrivateGroup> {
+
+	public GroupInvitationReceivedEvent(PrivateGroup group, ContactId contactId,
+			ForumInvitationRequest request) {
+		super(group, contactId, request);
+	}
+
+}
diff --git a/briar-api/src/org/briarproject/api/event/InvitationRequestReceivedEvent.java b/briar-api/src/org/briarproject/api/event/InvitationRequestReceivedEvent.java
index 184a88f5387a5e8fae71d4771c7d58e1893f1e50..f9bcfe1a5c792b2e9b6ef2490c53730224aa4e0a 100644
--- a/briar-api/src/org/briarproject/api/event/InvitationRequestReceivedEvent.java
+++ b/briar-api/src/org/briarproject/api/event/InvitationRequestReceivedEvent.java
@@ -2,14 +2,18 @@ package org.briarproject.api.event;
 
 import org.briarproject.api.contact.ContactId;
 import org.briarproject.api.sharing.InvitationRequest;
+import org.briarproject.api.sharing.Shareable;
 
-public abstract class InvitationRequestReceivedEvent extends Event {
+public abstract class InvitationRequestReceivedEvent<S extends Shareable>
+		extends Event {
 
+	private final S shareable;
 	private final ContactId contactId;
 	private final InvitationRequest request;
 
-	InvitationRequestReceivedEvent(ContactId contactId,
+	InvitationRequestReceivedEvent(S shareable, ContactId contactId,
 			InvitationRequest request) {
+		this.shareable = shareable;
 		this.contactId = contactId;
 		this.request = request;
 	}
@@ -21,4 +25,8 @@ public abstract class InvitationRequestReceivedEvent extends Event {
 	public InvitationRequest getRequest() {
 		return request;
 	}
+
+	public S getShareable() {
+		return shareable;
+	}
 }