diff --git a/briar-android/src/org/briarproject/android/groups/ShareGroupActivity.java b/briar-android/src/org/briarproject/android/groups/ShareGroupActivity.java
index e926614a28e16d5db58875e5d5dd3ea22e8a09a3..1169c69e1ae8557f3cc4b193cd94625eceb624fd 100644
--- a/briar-android/src/org/briarproject/android/groups/ShareGroupActivity.java
+++ b/briar-android/src/org/briarproject/android/groups/ShareGroupActivity.java
@@ -117,17 +117,21 @@ SelectContactsDialog.Listener {
 			else displayVisibility();
 		} else if (view == shareButton) {
 			if (changed) {
-				// Replace the button with a progress bar
-				shareButton.setVisibility(GONE);
-				progress.setVisibility(VISIBLE);
-				// Update the group in a background thread
-				storeVisibility(shareWithAll.isChecked());
+				share();
 			} else {
 				finish();
 			}
 		}
 	}
 
+	private void share() {
+		// Replace the button with a progress bar
+		shareButton.setVisibility(GONE);
+		progress.setVisibility(VISIBLE);
+		// Update the group in a background thread
+		storeVisibility(shareWithAll.isChecked());
+	}
+
 	private void loadVisibility() {
 		runOnDbThread(new Runnable() {
 			public void run() {
@@ -194,6 +198,7 @@ SelectContactsDialog.Listener {
 
 	public void contactsSelected(Collection<ContactId> selected) {
 		this.selected = Collections.unmodifiableCollection(selected);
+		share();
 	}
 
 	public void contactSelectionCancelled() {