diff --git a/briar-android/res/layout/list_item_group.xml b/briar-android/res/layout/list_item_group.xml
index afb0b642c1d63557b3eb94111b25cf1921bfcfaa..20ed6fc9f660e9ba4e820d7323fe6320328bc526 100644
--- a/briar-android/res/layout/list_item_group.xml
+++ b/briar-android/res/layout/list_item_group.xml
@@ -80,6 +80,7 @@
 		android:layout_below="@+id/messageCountView"
 		android:layout_toEndOf="@+id/avatarView"
 		android:layout_toRightOf="@+id/avatarView"
+		android:layout_toLeftOf="@+id/removeButton"
 		android:paddingTop="@dimen/margin_small"
 		android:textColor="@color/briar_text_tertiary"
 		tools:text="@string/groups_group_is_empty"/>
@@ -91,7 +92,6 @@
 		android:layout_height="wrap_content"
 		android:layout_alignBottom="@+id/divider"
 		android:layout_alignParentRight="true"
-		android:layout_toRightOf="@+id/statusView"
 		android:text="@string/groups_remove"
 		tools:visibility="gone"/>
 
diff --git a/briar-android/src/org/briarproject/android/privategroup/conversation/GroupActivity.java b/briar-android/src/org/briarproject/android/privategroup/conversation/GroupActivity.java
index 14000ec25acbdd296bc9272b1e408bf770f7b910..da9ceed369df8058a59b0a1c0fdd424d7719e000 100644
--- a/briar-android/src/org/briarproject/android/privategroup/conversation/GroupActivity.java
+++ b/briar-android/src/org/briarproject/android/privategroup/conversation/GroupActivity.java
@@ -33,9 +33,8 @@ public class GroupActivity extends
 	@Inject
 	GroupController controller;
 
-	private boolean isCreator;
-	private MenuItem leaveMenuItem;
-	private MenuItem dissolveMenuItem;
+	private boolean isCreator, isDissolved = false;
+	private MenuItem writeMenuItem, leaveMenuItem, dissolveMenuItem;
 
 	@Override
 	public void injectActivity(ActivityComponent component) {
@@ -59,6 +58,24 @@ public class GroupActivity extends
 		list.setEmptyText(R.string.groups_no_messages);
 	}
 
+	@Override
+	public void onStart() {
+		super.onStart();
+		controller.isDissolved(
+				new UiResultExceptionHandler<Boolean, DbException>(this) {
+					@Override
+					public void onResultUi(Boolean isDissolved) {
+						if (isDissolved) disableGroup();
+					}
+
+					@Override
+					public void onExceptionUi(DbException exception) {
+						// TODO proper error handling
+						finish();
+					}
+				});
+	}
+
 	@Override
 	protected void onNamedGroupLoaded(PrivateGroup group) {
 		setTitle(group.getName());
@@ -102,6 +119,7 @@ public class GroupActivity extends
 		MenuInflater inflater = getMenuInflater();
 		inflater.inflate(R.menu.group_actions, menu);
 
+		writeMenuItem = menu.findItem(R.id.action_group_compose_message);
 		leaveMenuItem = menu.findItem(R.id.action_group_leave);
 		dissolveMenuItem = menu.findItem(R.id.action_group_dissolve);
 		showMenuItems();
@@ -143,6 +161,18 @@ public class GroupActivity extends
 		return R.string.groups_message_received;
 	}
 
+	@Override
+	public void onReplyClick(GroupMessageItem item) {
+		if (!isDissolved) super.onReplyClick(item);
+	}
+
+	private void disableGroup() {
+		isDissolved = true;
+		if (writeMenuItem != null) writeMenuItem.setVisible(false);
+		textInput.setSendButtonEnabled(false);
+		list.setAlpha(0.5f);
+	}
+
 	private void showMenuItems() {
 		if (leaveMenuItem == null || dissolveMenuItem == null) return;
 		if (isCreator) {
@@ -152,6 +182,7 @@ public class GroupActivity extends
 			leaveMenuItem.setVisible(true);
 			dissolveMenuItem.setVisible(false);
 		}
+		if (isDissolved) writeMenuItem.setVisible(false);
 	}
 
 	private void showLeaveGroupDialog() {
diff --git a/briar-android/src/org/briarproject/android/privategroup/conversation/GroupController.java b/briar-android/src/org/briarproject/android/privategroup/conversation/GroupController.java
index 1a2fa951e87481a613e1a02ebc2ced45a0bb3f86..ffdc971fce6bcc7b221b748533d5f4f1a9a6fea5 100644
--- a/briar-android/src/org/briarproject/android/privategroup/conversation/GroupController.java
+++ b/briar-android/src/org/briarproject/android/privategroup/conversation/GroupController.java
@@ -13,4 +13,7 @@ public interface GroupController
 	void isCreator(PrivateGroup group,
 			ResultExceptionHandler<Boolean, DbException> handler);
 
+	void isDissolved(
+			ResultExceptionHandler<Boolean, DbException> handler);
+
 }
diff --git a/briar-android/src/org/briarproject/android/privategroup/conversation/GroupControllerImpl.java b/briar-android/src/org/briarproject/android/privategroup/conversation/GroupControllerImpl.java
index df366c675c61193732c8fb901cd5be98c21cd3f9..34ce9768f93d5f87067fb030e6b3f0a8bb830475 100644
--- a/briar-android/src/org/briarproject/android/privategroup/conversation/GroupControllerImpl.java
+++ b/briar-android/src/org/briarproject/android/privategroup/conversation/GroupControllerImpl.java
@@ -195,4 +195,23 @@ public class GroupControllerImpl extends
 		});
 	}
 
+	@Override
+	public void isDissolved(final
+			ResultExceptionHandler<Boolean, DbException> handler) {
+		runOnDbThread(new Runnable() {
+			@Override
+			public void run() {
+				try {
+					boolean isDissolved =
+							privateGroupManager.isDissolved(getGroupId());
+					handler.onResult(isDissolved);
+				} catch (DbException e) {
+					if (LOG.isLoggable(WARNING))
+						LOG.log(WARNING, e.toString(), e);
+					handler.onException(e);
+				}
+			}
+		});
+	}
+
 }
diff --git a/briar-android/src/org/briarproject/android/privategroup/list/GroupListControllerImpl.java b/briar-android/src/org/briarproject/android/privategroup/list/GroupListControllerImpl.java
index 76856f244d627722d468826586a55b92dbc56bb6..8be76289fe1ad638388d4526f2286a2a8f40165c 100644
--- a/briar-android/src/org/briarproject/android/privategroup/list/GroupListControllerImpl.java
+++ b/briar-android/src/org/briarproject/android/privategroup/list/GroupListControllerImpl.java
@@ -2,7 +2,6 @@ package org.briarproject.android.privategroup.list;
 
 import android.support.annotation.CallSuper;
 
-import org.briarproject.android.api.AndroidNotificationManager;
 import org.briarproject.android.controller.DbControllerImpl;
 import org.briarproject.android.controller.handler.ResultExceptionHandler;
 import org.briarproject.api.clients.MessageTracker.GroupCount;
@@ -15,7 +14,6 @@ import org.briarproject.api.event.EventListener;
 import org.briarproject.api.event.GroupAddedEvent;
 import org.briarproject.api.event.GroupMessageAddedEvent;
 import org.briarproject.api.event.GroupRemovedEvent;
-import org.briarproject.api.identity.IdentityManager;
 import org.briarproject.api.lifecycle.LifecycleManager;
 import org.briarproject.api.privategroup.GroupMessageHeader;
 import org.briarproject.api.privategroup.PrivateGroup;
@@ -44,23 +42,17 @@ public class GroupListControllerImpl extends DbControllerImpl
 	private final PrivateGroupManager groupManager;
 	private final GroupInvitationManager groupInvitationManager;
 	private final EventBus eventBus;
-	private final AndroidNotificationManager notificationManager;
-	private final IdentityManager identityManager;
 
 	protected volatile GroupListListener listener;
 
 	@Inject
 	GroupListControllerImpl(@DatabaseExecutor Executor dbExecutor,
 			LifecycleManager lifecycleManager, PrivateGroupManager groupManager,
-			GroupInvitationManager groupInvitationManager, EventBus eventBus,
-			AndroidNotificationManager notificationManager,
-			IdentityManager identityManager) {
+			GroupInvitationManager groupInvitationManager, EventBus eventBus) {
 		super(dbExecutor, lifecycleManager);
 		this.groupManager = groupManager;
 		this.groupInvitationManager = groupInvitationManager;
 		this.eventBus = eventBus;
-		this.notificationManager = notificationManager;
-		this.identityManager = identityManager;
 	}
 
 	@Override