diff --git a/briar-android/src/org/briarproject/android/forum/ForumInvitationAdapter.java b/briar-android/src/org/briarproject/android/forum/ForumInvitationAdapter.java
index 23e24b7e1494de5e919aa29691b89d267dffea85..28ef9e2f1c042c139567e106d0e4b8f9d6c3175c 100644
--- a/briar-android/src/org/briarproject/android/forum/ForumInvitationAdapter.java
+++ b/briar-android/src/org/briarproject/android/forum/ForumInvitationAdapter.java
@@ -12,6 +12,7 @@ import android.widget.TextView;
 import org.briarproject.R;
 import org.briarproject.android.util.TextAvatarView;
 import org.briarproject.api.contact.Contact;
+import org.briarproject.api.forum.ForumSharingMessage;
 import org.briarproject.util.StringUtils;
 
 import java.util.ArrayList;
@@ -94,6 +95,10 @@ class ForumInvitationAdapter extends
 		forums.addAll(list);
 	}
 
+	public void remove(ForumInvitationItem item) {
+		forums.remove(item);
+	}
+
 	public void clear() {
 		forums.clear();
 	}
@@ -154,7 +159,7 @@ class ForumInvitationAdapter extends
 		@Override
 		public boolean areContentsTheSame(ForumInvitationItem oldItem,
 				ForumInvitationItem newItem) {
-			return oldItem.getForum().equals(newItem.getForum()) &&
+			return oldItem.isSubscribed() == newItem.isSubscribed() &&
 					oldItem.getContacts().equals(newItem.getContacts());
 		}
 
diff --git a/briar-android/src/org/briarproject/android/forum/ForumInvitationsActivity.java b/briar-android/src/org/briarproject/android/forum/ForumInvitationsActivity.java
index 24436eb81efada0c75f0072b4876975f758d814b..ed36990d8715d0b5bc52a894388c24f438ffebfb 100644
--- a/briar-android/src/org/briarproject/android/forum/ForumInvitationsActivity.java
+++ b/briar-android/src/org/briarproject/android/forum/ForumInvitationsActivity.java
@@ -114,7 +114,6 @@ public class ForumInvitationsActivity extends BriarActivity
 					LOG.info("No forums available, finishing");
 					finish();
 				} else {
-					adapter.clear();
 					adapter.addAll(forums);
 				}
 			}
@@ -158,6 +157,12 @@ public class ForumInvitationsActivity extends BriarActivity
 		int res = R.string.forum_declined_toast;
 		if (accept) res = R.string.forum_joined_toast;
 		Toast.makeText(this, res, LENGTH_SHORT).show();
+
+		// remove item and finish if it was the last
+		adapter.remove(item);
+		if (adapter.getItemCount() == 0) {
+			supportFinishAfterTransition();
+		}
 	}
 
 	private void respondToInvitation(final ForumInvitationItem item,
@@ -174,7 +179,6 @@ public class ForumInvitationsActivity extends BriarActivity
 					if (LOG.isLoggable(WARNING))
 						LOG.log(WARNING, e.toString(), e);
 				}
-				loadForums();
 			}
 		});
 	}