diff --git a/briar-android/src/org/briarproject/android/BriarService.java b/briar-android/src/org/briarproject/android/BriarService.java
index f84ab4247789cbb93d5e9f2e64dad483cb395e37..d4829e2c7f6cf5f56aa9d65ea464b6b6f05e4975 100644
--- a/briar-android/src/org/briarproject/android/BriarService.java
+++ b/briar-android/src/org/briarproject/android/BriarService.java
@@ -7,6 +7,7 @@ import static java.util.logging.Level.INFO;
 
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.Executor;
+import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.logging.Logger;
 
 import javax.inject.Inject;
@@ -37,6 +38,7 @@ public class BriarService extends RoboService {
 	private static final Logger LOG =
 			Logger.getLogger(BriarService.class.getName());
 
+	private final AtomicBoolean created = new AtomicBoolean(false);
 	private final Binder binder = new BriarBinder();
 
 	@Inject private DatabaseConfig databaseConfig;
@@ -52,6 +54,11 @@ public class BriarService extends RoboService {
 	public void onCreate() {
 		super.onCreate();
 		if(LOG.isLoggable(INFO)) LOG.info("Created");
+		if(created.getAndSet(true)) {
+			if(LOG.isLoggable(INFO)) LOG.info("Already created");
+			stopSelf();
+			return;
+		}
 		if(databaseConfig.getEncryptionKey() == null) {
 			if(LOG.isLoggable(INFO)) LOG.info("No database key");
 			stopSelf();
@@ -92,6 +99,11 @@ public class BriarService extends RoboService {
 		Object o = getSystemService(Context.NOTIFICATION_SERVICE);
 		NotificationManager nm = (NotificationManager) o;
 		nm.notify(FAILURE_NOTIFICATION_ID, b.build());
+		// Bring HomeScreenActivity to the front to clear all other activities
+		Intent i = new Intent(this, HomeScreenActivity.class);
+		i.setFlags(FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_CLEAR_TOP);
+		i.putExtra("briar.STARTUP_FAILED", true);
+		startActivity(i);
 	}
 
 	@Override
diff --git a/briar-android/src/org/briarproject/android/HomeScreenActivity.java b/briar-android/src/org/briarproject/android/HomeScreenActivity.java
index 6caeaf890a313353c5b1ff18506ef699a5c95286..21828df67c8c95eafc4dc742ff6f2d82485c4020 100644
--- a/briar-android/src/org/briarproject/android/HomeScreenActivity.java
+++ b/briar-android/src/org/briarproject/android/HomeScreenActivity.java
@@ -53,8 +53,14 @@ public class HomeScreenActivity extends BriarActivity {
 	@Override
 	public void onCreate(Bundle state) {
 		super.onCreate(state);
-		long handle = getIntent().getLongExtra("briar.LOCAL_AUTHOR_HANDLE", -1);
-		if(handle == -1) {
+		Intent i = getIntent();
+		boolean failed = i.getBooleanExtra("briar.STARTUP_FAILED", false);
+		long handle = i.getLongExtra("briar.LOCAL_AUTHOR_HANDLE", -1);
+		if(failed) {
+			finish();
+			if(LOG.isLoggable(INFO)) LOG.info("Exiting");
+			System.exit(0);
+		} else if(handle == -1) {
 			// The activity has been launched before
 			showButtons();
 		} else {