diff --git a/briar-android/src/main/AndroidManifest.xml b/briar-android/src/main/AndroidManifest.xml
index 0bb07db5ca30e7ef6ae0ce2db76c5196e59e6384..6df393ec04e0da895387f0ff1e3414a785011eb4 100644
--- a/briar-android/src/main/AndroidManifest.xml
+++ b/briar-android/src/main/AndroidManifest.xml
@@ -179,7 +179,7 @@
 			android:name=".android.forum.CreateForumActivity"
 			android:label="@string/create_forum_title"
 			android:parentActivityName=".android.navdrawer.NavDrawerActivity"
-			android:windowSoftInputMode="stateVisible">
+			android:windowSoftInputMode="adjustResize">
 			<meta-data
 				android:name="android.support.PARENT_ACTIVITY"
 				android:value=".android.navdrawer.NavDrawerActivity"
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/activity/ActivityComponent.java b/briar-android/src/main/java/org/briarproject/briar/android/activity/ActivityComponent.java
index 60ed47f5ab6c9a118439e07a4f324e4c255816ef..7b9bb80ce2dae32d1bc490f64e3191147f66e869 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/activity/ActivityComponent.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/activity/ActivityComponent.java
@@ -39,7 +39,7 @@ import org.briarproject.briar.android.privategroup.conversation.GroupConversatio
 import org.briarproject.briar.android.privategroup.creation.CreateGroupActivity;
 import org.briarproject.briar.android.privategroup.creation.CreateGroupFragment;
 import org.briarproject.briar.android.privategroup.creation.CreateGroupMessageFragment;
-import org.briarproject.briar.android.privategroup.creation.GroupCreateModule;
+import org.briarproject.briar.android.privategroup.creation.CreateGroupModule;
 import org.briarproject.briar.android.privategroup.creation.GroupInviteActivity;
 import org.briarproject.briar.android.privategroup.creation.GroupInviteFragment;
 import org.briarproject.briar.android.privategroup.invitation.GroupInvitationActivity;
@@ -71,7 +71,7 @@ import dagger.Component;
 @Component(
 		modules = {ActivityModule.class, ForumModule.class, SharingModule.class,
 				BlogModule.class, ContactModule.class, GroupListModule.class,
-				GroupCreateModule.class, GroupInvitationModule.class,
+				CreateGroupModule.class, GroupInvitationModule.class,
 				GroupConversationModule.class, GroupMemberModule.class,
 				GroupRevealModule.class},
 		dependencies = AndroidComponent.class)
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/creation/BaseGroupInviteActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/creation/BaseGroupInviteActivity.java
deleted file mode 100644
index 315aed855bb74453e3b82f86488287aecc8d47ca..0000000000000000000000000000000000000000
--- a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/creation/BaseGroupInviteActivity.java
+++ /dev/null
@@ -1,58 +0,0 @@
-package org.briarproject.briar.android.privategroup.creation;
-
-import org.briarproject.bramble.api.contact.ContactId;
-import org.briarproject.bramble.api.db.DbException;
-import org.briarproject.bramble.api.nullsafety.MethodsNotNullByDefault;
-import org.briarproject.bramble.api.nullsafety.ParametersNotNullByDefault;
-import org.briarproject.briar.android.contactselection.ContactSelectorActivity;
-import org.briarproject.briar.android.controller.handler.UiResultExceptionHandler;
-import org.briarproject.briar.android.sharing.BaseMessageFragment.MessageFragmentListener;
-
-import java.util.Collection;
-
-import javax.inject.Inject;
-
-import static org.briarproject.briar.api.privategroup.PrivateGroupConstants.MAX_GROUP_INVITATION_MSG_LENGTH;
-
-@MethodsNotNullByDefault
-@ParametersNotNullByDefault
-public abstract class BaseGroupInviteActivity
-		extends ContactSelectorActivity implements MessageFragmentListener {
-
-	@Inject
-	CreateGroupController controller;
-
-	@Override
-	public void contactsSelected(Collection<ContactId> contacts) {
-		super.contactsSelected(contacts);
-
-		showNextFragment(new CreateGroupMessageFragment());
-	}
-
-	@Override
-	public boolean onButtonClick(String message) {
-		if (groupId == null)
-			throw new IllegalStateException("GroupId was not initialized");
-		controller.sendInvitation(groupId, contacts, message,
-				new UiResultExceptionHandler<Void, DbException>(this) {
-					@Override
-					public void onResultUi(Void result) {
-						setResult(RESULT_OK);
-						supportFinishAfterTransition();
-					}
-
-					@Override
-					public void onExceptionUi(DbException exception) {
-						setResult(RESULT_CANCELED);
-						handleDbException(exception);
-					}
-				});
-		return true;
-	}
-
-	@Override
-	public int getMaximumMessageLength() {
-		return MAX_GROUP_INVITATION_MSG_LENGTH;
-	}
-
-}
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/creation/CreateGroupActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/creation/CreateGroupActivity.java
index 30e80f8298a4ea6012b5e1e1470720729af0469d..6cc0c6e5774e690611956a9e2836ed83a2e78e8b 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/creation/CreateGroupActivity.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/creation/CreateGroupActivity.java
@@ -9,16 +9,20 @@ import org.briarproject.bramble.api.nullsafety.ParametersNotNullByDefault;
 import org.briarproject.bramble.api.sync.GroupId;
 import org.briarproject.briar.R;
 import org.briarproject.briar.android.activity.ActivityComponent;
+import org.briarproject.briar.android.activity.BriarActivity;
 import org.briarproject.briar.android.controller.handler.UiResultExceptionHandler;
 import org.briarproject.briar.android.privategroup.conversation.GroupActivity;
-import org.briarproject.briar.android.sharing.BaseMessageFragment.MessageFragmentListener;
 
 import javax.annotation.Nullable;
+import javax.inject.Inject;
 
 @MethodsNotNullByDefault
 @ParametersNotNullByDefault
-public class CreateGroupActivity extends BaseGroupInviteActivity implements
-		CreateGroupListener, MessageFragmentListener {
+public class CreateGroupActivity extends BriarActivity
+		implements CreateGroupListener {
+
+	@Inject
+	CreateGroupController controller;
 
 	@Override
 	public void injectActivity(ActivityComponent component) {
@@ -29,32 +33,20 @@ public class CreateGroupActivity extends BaseGroupInviteActivity implements
 	public void onCreate(@Nullable Bundle bundle) {
 		super.onCreate(bundle);
 
+		setContentView(R.layout.activity_fragment_container);
+
 		if (bundle == null) {
 			showInitialFragment(new CreateGroupFragment());
 		}
 	}
 
-	@Override
-	public void onBackPressed() {
-		if (getSupportFragmentManager().getBackStackEntryCount() == 1) {
-			// At this point, the group had been created already,
-			// so don't allow to create it again.
-			openNewGroup();
-			overridePendingTransition(R.anim.screen_old_in,
-					R.anim.screen_new_out);
-		} else {
-			super.onBackPressed();
-		}
-	}
-
 	@Override
 	public void onGroupNameChosen(String name) {
 		controller.createGroup(name,
 				new UiResultExceptionHandler<GroupId, DbException>(this) {
 					@Override
 					public void onResultUi(GroupId g) {
-						groupId = g;
-						switchToContactSelectorFragment(g);
+						openNewGroup(g);
 					}
 
 					@Override
@@ -64,16 +56,10 @@ public class CreateGroupActivity extends BaseGroupInviteActivity implements
 				});
 	}
 
-	private void switchToContactSelectorFragment(GroupId g) {
-		showNextFragment(GroupInviteFragment.newInstance(g));
-	}
-
-	private void openNewGroup() {
+	private void openNewGroup(GroupId g) {
 		Intent i = new Intent(this, GroupActivity.class);
-		i.putExtra(GROUP_ID, groupId.getBytes());
+		i.putExtra(GROUP_ID, g.getBytes());
 		startActivity(i);
-		// finish this activity, so we can't come back to it
 		finish();
 	}
-
 }
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/creation/GroupCreateModule.java b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/creation/CreateGroupModule.java
similarity index 91%
rename from briar-android/src/main/java/org/briarproject/briar/android/privategroup/creation/GroupCreateModule.java
rename to briar-android/src/main/java/org/briarproject/briar/android/privategroup/creation/CreateGroupModule.java
index fc51ac8e914779bb4ad7eae556e674baf36237fc..9399958fe87aab56af861375e2a023297fe4d393 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/creation/GroupCreateModule.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/creation/CreateGroupModule.java
@@ -6,7 +6,7 @@ import dagger.Module;
 import dagger.Provides;
 
 @Module
-public class GroupCreateModule {
+public class CreateGroupModule {
 
 	@ActivityScope
 	@Provides
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/creation/GroupInviteActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/creation/GroupInviteActivity.java
index 9f6a092f51cdab6013b0ea407e13061498a76e8e..3da66f7cbebceba44233afe0043e716c228d1b26 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/creation/GroupInviteActivity.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/creation/GroupInviteActivity.java
@@ -3,25 +3,43 @@ package org.briarproject.briar.android.privategroup.creation;
 import android.content.Intent;
 import android.os.Bundle;
 
+import org.briarproject.bramble.api.contact.ContactId;
+import org.briarproject.bramble.api.db.DbException;
+import org.briarproject.bramble.api.nullsafety.MethodsNotNullByDefault;
+import org.briarproject.bramble.api.nullsafety.ParametersNotNullByDefault;
 import org.briarproject.bramble.api.sync.GroupId;
 import org.briarproject.briar.android.activity.ActivityComponent;
+import org.briarproject.briar.android.contactselection.ContactSelectorActivity;
+import org.briarproject.briar.android.controller.handler.UiResultExceptionHandler;
 import org.briarproject.briar.android.sharing.BaseMessageFragment.MessageFragmentListener;
 
-public class GroupInviteActivity extends BaseGroupInviteActivity
+import java.util.Collection;
+
+import javax.annotation.Nullable;
+import javax.inject.Inject;
+
+import static org.briarproject.briar.api.privategroup.PrivateGroupConstants.MAX_GROUP_INVITATION_MSG_LENGTH;
+
+@MethodsNotNullByDefault
+@ParametersNotNullByDefault
+public class GroupInviteActivity extends ContactSelectorActivity
 		implements MessageFragmentListener {
 
+	@Inject
+	CreateGroupController controller;
+
 	@Override
 	public void injectActivity(ActivityComponent component) {
 		component.inject(this);
 	}
 
 	@Override
-	public void onCreate(Bundle bundle) {
+	public void onCreate(@Nullable Bundle bundle) {
 		super.onCreate(bundle);
 
 		Intent i = getIntent();
 		byte[] g = i.getByteArrayExtra(GROUP_ID);
-		if (g == null) throw new IllegalStateException("No GroupId in intent.");
+		if (g == null) throw new IllegalStateException("No GroupId in intent");
 		groupId = new GroupId(g);
 
 		if (bundle == null) {
@@ -29,4 +47,36 @@ public class GroupInviteActivity extends BaseGroupInviteActivity
 		}
 	}
 
+	@Override
+	public void contactsSelected(Collection<ContactId> contacts) {
+		super.contactsSelected(contacts);
+
+		showNextFragment(new CreateGroupMessageFragment());
+	}
+
+	@Override
+	public boolean onButtonClick(String message) {
+		if (groupId == null)
+			throw new IllegalStateException("GroupId was not initialized");
+		controller.sendInvitation(groupId, contacts, message,
+				new UiResultExceptionHandler<Void, DbException>(this) {
+					@Override
+					public void onResultUi(Void result) {
+						setResult(RESULT_OK);
+						supportFinishAfterTransition();
+					}
+
+					@Override
+					public void onExceptionUi(DbException exception) {
+						setResult(RESULT_CANCELED);
+						handleDbException(exception);
+					}
+				});
+		return true;
+	}
+
+	@Override
+	public int getMaximumMessageLength() {
+		return MAX_GROUP_INVITATION_MSG_LENGTH;
+	}
 }
diff --git a/briar-android/src/main/res/menu/group_actions.xml b/briar-android/src/main/res/menu/group_actions.xml
index 2f4315a75220103e7fc590f3b112213753f50dea..1336c01de3136b635394fe7ea74fe769fc847cba 100644
--- a/briar-android/src/main/res/menu/group_actions.xml
+++ b/briar-android/src/main/res/menu/group_actions.xml
@@ -9,18 +9,18 @@
 		android:title="@string/groups_member_list"
 		app:showAsAction="ifRoom"/>
 
-	<item
-		android:id="@+id/action_group_reveal"
-		android:icon="@drawable/ic_visibility_white"
-		android:title="@string/groups_reveal_contacts"
-		app:showAsAction="ifRoom"/>
-
 	<item
 		android:id="@+id/action_group_invite"
-		android:icon="@drawable/ic_add_white"
+		android:icon="@drawable/social_share_white"
 		android:title="@string/groups_invite_members"
 		app:showAsAction="ifRoom"/>
 
+	<item
+		android:id="@+id/action_group_reveal"
+		android:icon="@drawable/ic_visibility_white"
+		android:title="@string/groups_reveal_contacts"
+		app:showAsAction="never"/>
+
 	<item
 		android:id="@+id/action_group_leave"
 		android:icon="@drawable/action_delete_white"
diff --git a/briar-android/src/main/res/values/strings.xml b/briar-android/src/main/res/values/strings.xml
index 6e2bbd8eb95c2fd5e1443ab12580e91c0bc11687..8a652f477cca26c9e4a5fbf977ae505c1e7f52d9 100644
--- a/briar-android/src/main/res/values/strings.xml
+++ b/briar-android/src/main/res/values/strings.xml
@@ -204,7 +204,7 @@
 
 	<!-- Forums -->
 	<string name="no_forums">You don\'t have any forums yet.\n\nWhy don\'t you create a new one yourself by tapping the + icon at the top?\n\nYou can also ask your contacts to share forums with you.</string>
-	<string name="create_forum_title">New Forum</string>
+	<string name="create_forum_title">Create Forum</string>
 	<string name="choose_forum_hint">Choose a name for your forum</string>
 	<string name="create_forum_button">Create Forum</string>
 	<string name="forum_created_toast">Forum created</string>