diff --git a/briar-android/src/org/briarproject/android/contact/ContactListFragment.java b/briar-android/src/org/briarproject/android/contact/ContactListFragment.java
index a7255005a036b0feb9ae4440c995a1f25e84b605..582097c2569aac45d6c8f08e05f7b194ca6030c6 100644
--- a/briar-android/src/org/briarproject/android/contact/ContactListFragment.java
+++ b/briar-android/src/org/briarproject/android/contact/ContactListFragment.java
@@ -375,6 +375,7 @@ public class ContactListFragment extends BaseFragment implements EventListener {
 	}
 
 	// This needs to be called from the DB thread
+	// Do not call getActivty() here as it might return null
 	private Collection<ConversationItem> getMessages(ContactId id)
 			throws DbException {
 
@@ -406,13 +407,7 @@ public class ContactListFragment extends BaseFragment implements EventListener {
 		Collection<InvitationMessage> invitations =
 				forumSharingManager.getInvitationMessages(id);
 		for (InvitationMessage i : invitations) {
-			if (i instanceof ForumInvitationRequest) {
-				ForumInvitationRequest r = (ForumInvitationRequest) i;
-				messages.add(ConversationItem.from(r));
-			} else if (i instanceof ForumInvitationResponse) {
-				ForumInvitationResponse r = (ForumInvitationResponse) i;
-				messages.add(ConversationItem.from(getActivity(), "", r));
-			}
+			messages.add(ConversationItem.from(i));
 		}
 		duration = System.currentTimeMillis() - now;
 		if (LOG.isLoggable(INFO))
diff --git a/briar-android/src/org/briarproject/android/contact/ConversationItem.java b/briar-android/src/org/briarproject/android/contact/ConversationItem.java
index 18cfbd742ac9eff46533bc12b5e6d0602400e40f..dbc81c25a7d9f51a5cf52cbcd4921871fdf055ea 100644
--- a/briar-android/src/org/briarproject/android/contact/ConversationItem.java
+++ b/briar-android/src/org/briarproject/android/contact/ConversationItem.java
@@ -9,6 +9,7 @@ import org.briarproject.api.introduction.IntroductionMessage;
 import org.briarproject.api.introduction.IntroductionRequest;
 import org.briarproject.api.introduction.IntroductionResponse;
 import org.briarproject.api.messaging.PrivateMessageHeader;
+import org.briarproject.api.sharing.InvitationMessage;
 import org.briarproject.api.sync.MessageId;
 
 // This class is not thread-safe
@@ -138,7 +139,7 @@ public abstract class ConversationItem {
 
 	/**
 	 * This method should not be used to get user-facing objects,
-	 * Its purpose is to provider data for the contact list.
+	 * Its purpose is only to provide data for the contact list.
 	 */
 	public static ConversationItem from(IntroductionMessage im) {
 		if (im.isLocal())
@@ -148,6 +149,18 @@ public abstract class ConversationItem {
 				im.getTimestamp(), im.isRead());
 	}
 
+	/**
+	 * This method should not be used to get user-facing objects,
+	 * Its purpose is only to provide data for the contact list.
+	 */
+	public static ConversationItem from(InvitationMessage im) {
+		if (im.isLocal())
+			return new ConversationNoticeOutItem(im.getId(), "",
+					im.getTimestamp(), false, false);
+		return new ConversationNoticeInItem(im.getId(), "",
+				im.getTimestamp(), im.isRead());
+	}
+
 	interface OutgoingItem {
 
 		MessageId getId();