diff --git a/briar-android/src/main/java/org/briarproject/briar/android/activity/BriarActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/activity/BriarActivity.java
index 2507347306cf9c35f74c0a3e7f7c76fe7a15205b..3fb1d8d51d27962aa44983a7aa9ee782048e20f0 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/activity/BriarActivity.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/activity/BriarActivity.java
@@ -27,7 +27,6 @@ import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TASK;
 import static android.content.Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS;
 import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
 import static android.content.Intent.FLAG_ACTIVITY_NO_ANIMATION;
-import static android.content.Intent.FLAG_ACTIVITY_SINGLE_TOP;
 import static org.briarproject.briar.android.activity.RequestCodes.REQUEST_PASSWORD;
 
 @SuppressLint("Registered")
@@ -61,7 +60,6 @@ public abstract class BriarActivity extends BaseActivity {
 		super.onStart();
 		if (!briarController.hasEncryptionKey() && !isFinishing()) {
 			Intent i = new Intent(this, PasswordActivity.class);
-			i.setFlags(FLAG_ACTIVITY_SINGLE_TOP);
 			startActivityForResult(i, REQUEST_PASSWORD);
 		}
 	}
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/login/PasswordActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/login/PasswordActivity.java
index d5c1da8a4d15045ebe3a75d1351ae087717a6448..26a5847a0467fa71fba93ab8e32e3b889a9132e4 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/login/PasswordActivity.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/login/PasswordActivity.java
@@ -19,6 +19,7 @@ import android.widget.TextView.OnEditorActionListener;
 import org.briarproject.briar.R;
 import org.briarproject.briar.android.activity.ActivityComponent;
 import org.briarproject.briar.android.activity.BaseActivity;
+import org.briarproject.briar.android.controller.BriarController;
 import org.briarproject.briar.android.controller.handler.UiResultHandler;
 import org.briarproject.briar.android.util.UiUtils;
 
@@ -26,13 +27,18 @@ import javax.inject.Inject;
 
 import static android.content.Intent.ACTION_MAIN;
 import static android.content.Intent.CATEGORY_HOME;
+import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TASK;
+import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
 import static android.view.View.INVISIBLE;
 import static android.view.View.VISIBLE;
 
 public class PasswordActivity extends BaseActivity {
 
 	@Inject
-	protected PasswordController passwordController;
+	PasswordController passwordController;
+
+	@Inject
+	BriarController briarController;
 
 	private Button signInButton;
 	private ProgressBar progress;
@@ -82,6 +88,16 @@ public class PasswordActivity extends BaseActivity {
 		});
 	}
 
+	@Override
+	public void onStart() {
+		super.onStart();
+		// If the user has already signed in, clean up this instance
+		if (briarController.hasEncryptionKey()) {
+			setResult(RESULT_OK);
+			finish();
+		}
+	}
+
 	@Override
 	public void injectActivity(ActivityComponent component) {
 		component.inject(this);
@@ -98,8 +114,9 @@ public class PasswordActivity extends BaseActivity {
 	private void deleteAccount() {
 		passwordController.deleteAccount(this);
 		setResult(RESULT_CANCELED);
-		startActivity(new Intent(this, SetupActivity.class));
-		supportFinishAfterTransition();
+		Intent i = new Intent(this, SetupActivity.class);
+		i.setFlags(FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_CLEAR_TASK);
+		startActivity(i);
 	}
 
 	public void onSignInClick(View v) {