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 31840b8e2a34000d0629cc7aa9cf415544758b04..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;
@@ -218,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();
+			}
 		}
 	}