diff --git a/briar-android/src/org/briarproject/android/forum/ForumInvitationsActivity.java b/briar-android/src/org/briarproject/android/forum/ForumInvitationsActivity.java
index ed36990d8715d0b5bc52a894388c24f438ffebfb..fd3e24196be8434a274550368b44b72a7f75be3d 100644
--- a/briar-android/src/org/briarproject/android/forum/ForumInvitationsActivity.java
+++ b/briar-android/src/org/briarproject/android/forum/ForumInvitationsActivity.java
@@ -71,10 +71,17 @@ public class ForumInvitationsActivity extends BriarActivity
 	public void onResume() {
 		super.onResume();
 		eventBus.addListener(this);
-		loadForums();
+		loadForums(false);
 	}
 
-	private void loadForums() {
+	@Override
+	public void onPause() {
+		super.onPause();
+		eventBus.removeListener(this);
+		adapter.clear();
+	}
+
+	private void loadForums(final boolean clear) {
 		runOnDbThread(new Runnable() {
 			@Override
 			public void run() {
@@ -97,7 +104,7 @@ public class ForumInvitationsActivity extends BriarActivity
 					long duration = System.currentTimeMillis() - now;
 					if (LOG.isLoggable(INFO))
 						LOG.info("Load took " + duration + " ms");
-					displayForums(forums);
+					displayForums(forums, clear);
 				} catch (DbException e) {
 					if (LOG.isLoggable(WARNING))
 						LOG.log(WARNING, e.toString(), e);
@@ -106,7 +113,8 @@ public class ForumInvitationsActivity extends BriarActivity
 		});
 	}
 
-	private void displayForums(final Collection<ForumInvitationItem> forums) {
+	private void displayForums(final Collection<ForumInvitationItem> forums,
+			final boolean clear) {
 		runOnUiThread(new Runnable() {
 			@Override
 			public void run() {
@@ -114,38 +122,33 @@ public class ForumInvitationsActivity extends BriarActivity
 					LOG.info("No forums available, finishing");
 					finish();
 				} else {
+					if (clear) adapter.clear();
 					adapter.addAll(forums);
 				}
 			}
 		});
 	}
 
-	@Override
-	public void onPause() {
-		super.onPause();
-		eventBus.removeListener(this);
-	}
-
 	@Override
 	public void eventOccurred(Event e) {
 		if (e instanceof ContactRemovedEvent) {
 			LOG.info("Contact removed, reloading");
-			loadForums();
+			loadForums(true);
 		} else if (e instanceof GroupAddedEvent) {
 			GroupAddedEvent g = (GroupAddedEvent) e;
 			if (g.getGroup().getClientId().equals(forumManager.getClientId())) {
 				LOG.info("Forum added, reloading");
-				loadForums();
+				loadForums(false);
 			}
 		} else if (e instanceof GroupRemovedEvent) {
 			GroupRemovedEvent g = (GroupRemovedEvent) e;
 			if (g.getGroup().getClientId().equals(forumManager.getClientId())) {
 				LOG.info("Forum removed, reloading");
-				loadForums();
+				loadForums(true);
 			}
 		} else if (e instanceof ForumInvitationReceivedEvent) {
 			LOG.info("Available forums updated, reloading");
-			loadForums();
+			loadForums(false);
 		}
 	}