diff --git a/briar-android/src/main/java/org/briarproject/briar/android/fragment/SignOutFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/fragment/SignOutFragment.java
index 8c014237a2055cd6fbeefd59e2ff3a58ce46c057..6d122c6df6a5b79a096cd3ec6ccb7f336ac3f650 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/fragment/SignOutFragment.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/fragment/SignOutFragment.java
@@ -12,7 +12,7 @@ import javax.annotation.Nullable;
 
 public class SignOutFragment extends BaseFragment {
 
-	private static final String TAG = SignOutFragment.class.getName();
+	public static final String TAG = SignOutFragment.class.getName();
 
 	@Override
 	public View onCreateView(LayoutInflater inflater,
@@ -30,5 +30,4 @@ public class SignOutFragment extends BaseFragment {
 	public void injectFragment(ActivityComponent component) {
 		// no need to inject
 	}
-
 }
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/navdrawer/NavDrawerActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/navdrawer/NavDrawerActivity.java
index dcc42f6c33cdb6ca8e795b023f5644d5594ed4e6..a42a1071c71586647d34691cf9c8c70004bdca39 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/navdrawer/NavDrawerActivity.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/navdrawer/NavDrawerActivity.java
@@ -7,6 +7,7 @@ import android.os.Bundle;
 import android.support.annotation.NonNull;
 import android.support.design.widget.NavigationView;
 import android.support.design.widget.NavigationView.OnNavigationItemSelectedListener;
+import android.support.v4.app.FragmentManager;
 import android.support.v4.app.FragmentTransaction;
 import android.support.v4.content.ContextCompat;
 import android.support.v4.widget.DrawerLayout;
@@ -22,6 +23,7 @@ import android.widget.ImageView;
 import android.widget.TextView;
 
 import org.briarproject.bramble.api.db.DbException;
+import org.briarproject.bramble.api.lifecycle.LifecycleManager;
 import org.briarproject.bramble.api.plugin.BluetoothConstants;
 import org.briarproject.bramble.api.plugin.LanTcpConstants;
 import org.briarproject.bramble.api.plugin.TorConstants;
@@ -51,6 +53,7 @@ import static android.support.v4.view.GravityCompat.START;
 import static android.support.v4.widget.DrawerLayout.LOCK_MODE_LOCKED_CLOSED;
 import static android.view.View.GONE;
 import static android.view.View.VISIBLE;
+import static org.briarproject.bramble.api.lifecycle.LifecycleManager.LifecycleState.RUNNING;
 import static org.briarproject.briar.android.BriarService.EXTRA_STARTUP_FAILED;
 import static org.briarproject.briar.android.activity.RequestCodes.REQUEST_PASSWORD;
 import static org.briarproject.briar.android.navdrawer.NavDrawerController.ExpiryWarning.NO;
@@ -73,6 +76,8 @@ public class NavDrawerActivity extends BriarActivity implements
 
 	@Inject
 	NavDrawerController controller;
+	@Inject
+	LifecycleManager lifecycleManager;
 
 	private DrawerLayout drawerLayout;
 	private NavigationView navigation;
@@ -128,7 +133,9 @@ public class NavDrawerActivity extends BriarActivity implements
 		initializeTransports(getLayoutInflater());
 		transportsView.setAdapter(transportsAdapter);
 
-		if (state == null) {
+		if (lifecycleManager.getLifecycleState().isAfter(RUNNING)) {
+			showSignOutFragment();
+		} else if (state == null) {
 			startFragment(ContactListFragment.newInstance(),
 					R.id.nav_btn_contacts);
 		}
@@ -212,19 +219,23 @@ public class NavDrawerActivity extends BriarActivity implements
 	public void onBackPressed() {
 		if (drawerLayout.isDrawerOpen(START)) {
 			drawerLayout.closeDrawer(START);
-		} else if (getSupportFragmentManager().getBackStackEntryCount() == 0 &&
-				getSupportFragmentManager()
-						.findFragmentByTag(ContactListFragment.TAG) == null) {
+		} else {
+			FragmentManager fm = getSupportFragmentManager();
+			if (fm.findFragmentByTag(SignOutFragment.TAG) != null) {
+				finish();
+			} else if (fm.getBackStackEntryCount() == 0
+					&& fm.findFragmentByTag(ContactListFragment.TAG) == null) {
 			/*
 			 * This makes sure that the first fragment (ContactListFragment) the
 			 * user sees is the same as the last fragment the user sees before
 			 * exiting. This models the typical Google navigation behaviour such
 			 * as in Gmail/Inbox.
 			 */
-			startFragment(ContactListFragment.newInstance(),
-					R.id.nav_btn_contacts);
-		} else {
-			super.onBackPressed();
+				startFragment(ContactListFragment.newInstance(),
+						R.id.nav_btn_contacts);
+			} else {
+				super.onBackPressed();
+			}
 		}
 	}
 
@@ -240,10 +251,15 @@ public class NavDrawerActivity extends BriarActivity implements
 		drawerToggle.onConfigurationChanged(newConfig);
 	}
 
-	private void signOut() {
+	private void showSignOutFragment() {
 		drawerLayout.setDrawerLockMode(LOCK_MODE_LOCKED_CLOSED);
 		startFragment(new SignOutFragment());
+	}
+
+	private void signOut() {
+		drawerLayout.setDrawerLockMode(LOCK_MODE_LOCKED_CLOSED);
 		signOut(false);
+		finish();
 	}
 
 	private void startFragment(BaseFragment fragment, int itemId) {
diff --git a/briar-android/src/main/res/layout/fragment_sign_out.xml b/briar-android/src/main/res/layout/fragment_sign_out.xml
index aafc7be5412bfdc5b81b940ad326d83b0ed93beb..73fd8f4e535d5dbef40998790205cd2659703a30 100644
--- a/briar-android/src/main/res/layout/fragment_sign_out.xml
+++ b/briar-android/src/main/res/layout/fragment_sign_out.xml
@@ -1,23 +1,46 @@
 <?xml version="1.0" encoding="utf-8"?>
-<RelativeLayout
+<android.support.constraint.ConstraintLayout
 	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">
 
+	<ImageView
+		android:id="@+id/imageView"
+		android:layout_width="128dp"
+		android:layout_height="128dp"
+		android:scaleType="center"
+		android:src="@drawable/startup_lock"
+		android:tint="@color/briar_primary"
+		app:layout_constraintBottom_toTopOf="@+id/textView"
+		app:layout_constraintEnd_toEndOf="parent"
+		app:layout_constraintStart_toStartOf="parent"
+		app:layout_constraintTop_toTopOf="parent"
+		app:layout_constraintVertical_bias="0.5"
+		app:layout_constraintVertical_chainStyle="packed"
+		tools:ignore="ContentDescription"/>
+
 	<ProgressBar
 		android:id="@+id/progressBar"
 		style="?android:attr/progressBarStyleLarge"
-		android:layout_width="wrap_content"
-		android:layout_height="wrap_content"
-		android:layout_centerInParent="true"/>
+		android:layout_width="0dp"
+		android:layout_height="0dp"
+		app:layout_constraintBottom_toBottomOf="@+id/imageView"
+		app:layout_constraintEnd_toEndOf="@+id/imageView"
+		app:layout_constraintStart_toStartOf="@+id/imageView"
+		app:layout_constraintTop_toTopOf="@+id/imageView"/>
 
 	<TextView
-		android:id="@+id/title_progress_bar"
+		android:id="@+id/textView"
 		android:layout_width="wrap_content"
 		android:layout_height="wrap_content"
-		android:layout_below="@+id/progressBar"
-		android:layout_centerHorizontal="true"
-		android:paddingTop="@dimen/margin_large"
-		android:text="@string/progress_title_logout"/>
+		android:layout_margin="8dp"
+		android:text="@string/progress_title_logout"
+		android:textSize="@dimen/text_size_large"
+		app:layout_constraintBottom_toBottomOf="parent"
+		app:layout_constraintEnd_toEndOf="parent"
+		app:layout_constraintStart_toStartOf="parent"
+		app:layout_constraintTop_toBottomOf="@+id/imageView"/>
 
-</RelativeLayout>
\ No newline at end of file
+</android.support.constraint.ConstraintLayout>
\ No newline at end of file