diff --git a/briar-android/src/main/java/org/briarproject/briar/android/forum/CreateForumActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/forum/CreateForumActivity.java
index 8c78445c09de7cceeaaf17a7a1346c0e06c0ef45..44087e109ed407c45a0eb4c6d79a737e3a777caa 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/forum/CreateForumActivity.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/forum/CreateForumActivity.java
@@ -2,6 +2,7 @@ package org.briarproject.briar.android.forum;
 
 import android.content.Intent;
 import android.os.Bundle;
+import android.support.design.widget.TextInputLayout;
 import android.text.Editable;
 import android.text.TextWatcher;
 import android.view.KeyEvent;
@@ -43,10 +44,10 @@ public class CreateForumActivity extends BriarActivity {
 	private static final Logger LOG =
 			Logger.getLogger(CreateForumActivity.class.getName());
 
+	private TextInputLayout nameEntryLayout;
 	private EditText nameEntry;
 	private Button createForumButton;
 	private ProgressBar progress;
-	private TextView feedback;
 
 	// Fields that are accessed from background threads must be volatile
 	@Inject
@@ -58,6 +59,8 @@ public class CreateForumActivity extends BriarActivity {
 
 		setContentView(R.layout.activity_create_forum);
 
+		nameEntryLayout =
+				(TextInputLayout) findViewById(R.id.createForumNameLayout);
 		nameEntry = (EditText) findViewById(R.id.createForumNameEntry);
 		nameEntry.addTextChangedListener(new TextWatcher() {
 
@@ -85,8 +88,6 @@ public class CreateForumActivity extends BriarActivity {
 			}
 		});
 
-		feedback = (TextView) findViewById(R.id.createForumFeedback);
-
 		createForumButton = (Button) findViewById(R.id.createForumButton);
 		createForumButton.setOnClickListener(new OnClickListener() {
 			@Override
@@ -118,10 +119,10 @@ public class CreateForumActivity extends BriarActivity {
 		String name = nameEntry.getText().toString();
 		int length = StringUtils.toUtf8(name).length;
 		if (length > MAX_FORUM_NAME_LENGTH) {
-			feedback.setText(R.string.name_too_long);
+			nameEntryLayout.setError(getString(R.string.name_too_long));
 			return false;
 		}
-		feedback.setText("");
+		nameEntryLayout.setError(null);
 		return length > 0;
 	}
 
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/creation/CreateGroupFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/creation/CreateGroupFragment.java
index aea42e265746cda0360869b63ddb778674c8ceea..f89db336bb6c7c06099a8f1ef9f9b3cf63d8cf28 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/creation/CreateGroupFragment.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/creation/CreateGroupFragment.java
@@ -2,6 +2,7 @@ package org.briarproject.briar.android.privategroup.creation;
 
 import android.content.Context;
 import android.os.Bundle;
+import android.support.design.widget.TextInputLayout;
 import android.text.Editable;
 import android.text.TextWatcher;
 import android.view.KeyEvent;
@@ -11,6 +12,7 @@ import android.view.View.OnClickListener;
 import android.view.ViewGroup;
 import android.widget.Button;
 import android.widget.EditText;
+import android.widget.ProgressBar;
 import android.widget.TextView;
 import android.widget.TextView.OnEditorActionListener;
 
@@ -19,6 +21,8 @@ import org.briarproject.briar.R;
 import org.briarproject.briar.android.activity.ActivityComponent;
 import org.briarproject.briar.android.fragment.BaseFragment;
 
+import static android.view.View.GONE;
+import static android.view.View.VISIBLE;
 import static org.briarproject.briar.api.privategroup.PrivateGroupConstants.MAX_GROUP_NAME_LENGTH;
 
 public class CreateGroupFragment extends BaseFragment {
@@ -28,7 +32,8 @@ public class CreateGroupFragment extends BaseFragment {
 	private CreateGroupListener listener;
 	private EditText nameEntry;
 	private Button createGroupButton;
-	private TextView feedback;
+	private TextInputLayout nameLayout;
+	private ProgressBar progress;
 
 	@Override
 	public void onAttach(Context context) {
@@ -69,7 +74,7 @@ public class CreateGroupFragment extends BaseFragment {
 			}
 		});
 
-		feedback = (TextView) v.findViewById(R.id.feedback);
+		nameLayout = (TextInputLayout) v.findViewById(R.id.nameLayout);
 
 		createGroupButton = (Button) v.findViewById(R.id.button);
 		createGroupButton.setOnClickListener(new OnClickListener() {
@@ -79,6 +84,8 @@ public class CreateGroupFragment extends BaseFragment {
 			}
 		});
 
+		progress = (ProgressBar) v.findViewById(R.id.progressBar);
+
 		return v;
 	}
 
@@ -107,16 +114,18 @@ public class CreateGroupFragment extends BaseFragment {
 		String name = nameEntry.getText().toString();
 		int length = StringUtils.toUtf8(name).length;
 		if (length > MAX_GROUP_NAME_LENGTH) {
-			feedback.setText(R.string.name_too_long);
+			nameLayout.setError(getString(R.string.name_too_long));
 			return false;
 		}
-		feedback.setText("");
+		nameLayout.setError(null);
 		return length > 0;
 	}
 
 	private void createGroup() {
 		if (!validateName()) return;
 		listener.hideSoftKeyboard(nameEntry);
+		createGroupButton.setVisibility(GONE);
+		progress.setVisibility(VISIBLE);
 		listener.onGroupNameChosen(nameEntry.getText().toString());
 	}
 }
diff --git a/briar-android/src/main/res/layout/activity_create_forum.xml b/briar-android/src/main/res/layout/activity_create_forum.xml
index da0a858757ab85e87c5a465c75e8bd6ee27b8cb5..6b2317689572a28e6e9818ba92dd49e6e0b5353e 100644
--- a/briar-android/src/main/res/layout/activity_create_forum.xml
+++ b/briar-android/src/main/res/layout/activity_create_forum.xml
@@ -1,37 +1,42 @@
 <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout
 	xmlns:android="http://schemas.android.com/apk/res/android"
+	xmlns:app="http://schemas.android.com/apk/res-auto"
+	xmlns:tools="http://schemas.android.com/tools"
 	android:layout_width="match_parent"
 	android:layout_height="match_parent"
-	android:gravity="center_horizontal"
 	android:orientation="vertical"
-	android:layout_margin="@dimen/margin_large">
+	android:padding="@dimen/margin_large">
 
-	<EditText
+	<android.support.design.widget.TextInputLayout
+		android:id="@+id/createForumNameLayout"
 		android:layout_width="match_parent"
 		android:layout_height="wrap_content"
-		android:id="@+id/createForumNameEntry"
-		android:maxLines="1"
-		android:inputType="text|textCapSentences"
-		android:hint="@string/choose_forum_hint" />
+		app:errorEnabled="true">
 
-	<TextView
-		android:layout_width="wrap_content"
-		android:layout_height="wrap_content"
-		android:id="@+id/createForumFeedback"
-		android:gravity="center" />
+		<EditText
+			android:id="@+id/createForumNameEntry"
+			android:layout_width="match_parent"
+			android:layout_height="wrap_content"
+			android:hint="@string/choose_forum_hint"
+			android:inputType="text|textCapSentences"
+			android:maxLines="1"/>
+
+	</android.support.design.widget.TextInputLayout>
 
 	<Button
-		style="@style/BriarButton"
 		android:id="@+id/createForumButton"
+		style="@style/BriarButton"
 		android:enabled="false"
-		android:text="@string/create_forum_button" />
+		android:text="@string/create_forum_button"/>
 
 	<ProgressBar
 		android:id="@+id/createForumProgressBar"
-		android:layout_height="wrap_content"
 		android:layout_width="wrap_content"
+		android:layout_height="wrap_content"
+		android:layout_gravity="center"
 		android:indeterminate="true"
-		android:visibility="gone" />
+		android:visibility="gone"
+		tools:visibility="visible"/>
 
 </LinearLayout>
diff --git a/briar-android/src/main/res/layout/fragment_create_group.xml b/briar-android/src/main/res/layout/fragment_create_group.xml
index a16e07552066ee1038039b24a01608e1ca84728d..1df8c9e382fae09ee2fcb83f0e7f490ec935304b 100644
--- a/briar-android/src/main/res/layout/fragment_create_group.xml
+++ b/briar-android/src/main/res/layout/fragment_create_group.xml
@@ -1,30 +1,42 @@
 <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout
 	xmlns:android="http://schemas.android.com/apk/res/android"
+	xmlns:app="http://schemas.android.com/apk/res-auto"
+	xmlns:tools="http://schemas.android.com/tools"
 	android:layout_width="match_parent"
 	android:layout_height="match_parent"
-	android:gravity="center_horizontal"
 	android:orientation="vertical"
-	android:layout_margin="@dimen/margin_large">
+	android:padding="@dimen/margin_large">
 
-	<EditText
-		android:id="@+id/name"
+	<android.support.design.widget.TextInputLayout
+		android:id="@+id/nameLayout"
 		android:layout_width="match_parent"
 		android:layout_height="wrap_content"
-		android:maxLines="1"
-		android:inputType="text|textCapSentences"
-		android:hint="@string/groups_create_group_hint"/>
+		app:errorEnabled="true">
 
-	<TextView
-		android:layout_width="wrap_content"
-		android:layout_height="wrap_content"
-		android:id="@+id/feedback"
-		android:gravity="center" />
+		<EditText
+			android:id="@+id/name"
+			android:layout_width="match_parent"
+			android:layout_height="wrap_content"
+			android:hint="@string/groups_create_group_hint"
+			android:inputType="text|textCapSentences"
+			android:maxLines="1"/>
+
+	</android.support.design.widget.TextInputLayout>
 
 	<Button
-		style="@style/BriarButton"
 		android:id="@+id/button"
+		style="@style/BriarButton"
 		android:enabled="false"
 		android:text="@string/groups_create_group_button"/>
 
+	<ProgressBar
+		android:id="@+id/progressBar"
+		android:layout_width="wrap_content"
+		android:layout_height="wrap_content"
+		android:layout_gravity="center"
+		android:indeterminate="true"
+		android:visibility="gone"
+		tools:visibility="visible"/>
+
 </LinearLayout>