diff --git a/briar-android/res/values/strings.xml b/briar-android/res/values/strings.xml
index 2ab0dc683b3610f3fafe9a83a98e891bc936ba03..1ac6b50ebce552540c62051b8f8fc2b8f3be1886 100644
--- a/briar-android/res/values/strings.xml
+++ b/briar-android/res/values/strings.xml
@@ -122,6 +122,8 @@
     <string name="lock_setting_summary">Sign out of Briar if a panic button is pressed</string>
     <string name="purge_setting_title">Delete Account</string>
     <string name="purge_setting_summary">Delete your Briar account if a panic button is pressed. Caution: This will permanently delete your identities, contacts and messages</string>
+    <string name="uninstall_setting_title">Uninstall Briar</string>
+    <string name="uninstall_setting_summary">This requires manual confirmation in a panic event</string>
     <string name="step">Step %1$d/%2$d</string>
     <string name="online">Online</string>
     <string name="offline">Offline</string>
diff --git a/briar-android/res/xml/panic_preferences.xml b/briar-android/res/xml/panic_preferences.xml
index af9bbeca501b78bac1abd2115e0a3279ebd089d3..306f53ac2a0c141d962790cdc8b0b890203fbd74 100644
--- a/briar-android/res/xml/panic_preferences.xml
+++ b/briar-android/res/xml/panic_preferences.xml
@@ -24,6 +24,13 @@
 			android:enabled="false"
 			android:defaultValue="false"/>
 
+		<CheckBoxPreference
+			android:key="pref_key_uninstall"
+			android:title="@string/uninstall_setting_title"
+			android:summary="@string/uninstall_setting_summary"
+			android:enabled="false"
+			android:defaultValue="false"/>
+
 	</PreferenceCategory>
 
 </PreferenceScreen>
\ No newline at end of file
diff --git a/briar-android/src/org/briarproject/android/panic/PanicPreferencesFragment.java b/briar-android/src/org/briarproject/android/panic/PanicPreferencesFragment.java
index 3ee8915c25d976609029bbdc189ffa64eea406c3..9324466b0b5c377add15c22ef4cd1723a342b513 100644
--- a/briar-android/src/org/briarproject/android/panic/PanicPreferencesFragment.java
+++ b/briar-android/src/org/briarproject/android/panic/PanicPreferencesFragment.java
@@ -27,13 +27,17 @@ import info.guardianproject.panic.PanicResponder;
 public class PanicPreferencesFragment extends PreferenceFragmentCompat
 		implements SharedPreferences.OnSharedPreferenceChangeListener {
 
+	public static final String KEY_LOCK = "pref_key_lock";
+	public static final String KEY_PANIC_APP = "pref_key_panic_app";
+	public static final String KEY_PURGE = "pref_key_purge";
+	public static final String KEY_UNINSTALL = "pref_key_uninstall";
+
 	private static final Logger LOG =
 			Logger.getLogger(PanicPreferencesFragment.class.getName());
 
 	private PackageManager pm;
-	private CheckBoxPreference lockPref;
+	private CheckBoxPreference lockPref, purgePref, uninstallPref;
 	private ListPreference panicAppPref;
-	private CheckBoxPreference purgePref;
 
 	@Override
 	public void onCreatePreferences(Bundle bundle, String s) {
@@ -41,9 +45,10 @@ public class PanicPreferencesFragment extends PreferenceFragmentCompat
 
 		pm = getActivity().getPackageManager();
 
-		lockPref = (CheckBoxPreference) findPreference("pref_key_lock");
-		panicAppPref = (ListPreference) findPreference("pref_key_panic_app");
-		purgePref = (CheckBoxPreference) findPreference("pref_key_purge");
+		lockPref = (CheckBoxPreference) findPreference(KEY_LOCK);
+		panicAppPref = (ListPreference) findPreference(KEY_PANIC_APP);
+		purgePref = (CheckBoxPreference) findPreference(KEY_PURGE);
+		uninstallPref = (CheckBoxPreference) findPreference(KEY_UNINSTALL);
 
 		// check for connect/disconnect intents from panic trigger apps
 		if (PanicResponder.checkForDisconnectIntent(getActivity())) {
@@ -98,9 +103,12 @@ public class PanicPreferencesFragment extends PreferenceFragmentCompat
 						if (packageName.equals(Panic.PACKAGE_NAME_NONE)) {
 							purgePref.setChecked(false);
 							purgePref.setEnabled(false);
+							uninstallPref.setChecked(false);
+							uninstallPref.setEnabled(false);
 							getActivity().setResult(Activity.RESULT_CANCELED);
 						} else {
 							purgePref.setEnabled(true);
+							uninstallPref.setEnabled(true);
 						}
 
 						return true;
@@ -141,16 +149,27 @@ public class PanicPreferencesFragment extends PreferenceFragmentCompat
 	@Override
 	public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
 			String key) {
-		// enable locking if purging gets enabled
-		if (key.equals("pref_key_purge")
-				&& sharedPreferences.getBoolean("pref_key_purge", false)) {
+		if (key.equals(KEY_PURGE)) {
+			// enable locking if purging gets enabled
+			if (sharedPreferences.getBoolean(KEY_PURGE, false)) {
+				lockPref.setChecked(true);
+			}
+			// disable uninstall if purging gets disabled
+			else {
+				uninstallPref.setChecked(false);
+			}
+		}
+		// enable purging and locking if uninstall gets enabled
+		if (key.equals(KEY_UNINSTALL) &&
+				sharedPreferences.getBoolean(KEY_UNINSTALL, false)) {
 			lockPref.setChecked(true);
+			purgePref.setChecked(true);
 		}
-		// disable purging if locking gets disabled
-		if (key.equals("pref_key_lock")
-				&& !sharedPreferences.getBoolean("pref_key_lock",  true)
-				&&  sharedPreferences.getBoolean("pref_key_purge", false)) {
+		// disable purging and uninstalling if locking gets disabled
+		if (key.equals(KEY_LOCK) &&
+				!sharedPreferences.getBoolean(KEY_LOCK, true)) {
 			purgePref.setChecked(false);
+			uninstallPref.setChecked(false);
 		}
 	}
 
@@ -163,7 +182,9 @@ public class PanicPreferencesFragment extends PreferenceFragmentCompat
 					.setSummary(getString(R.string.panic_app_setting_summary));
 			panicAppPref.setIcon(
 					android.R.drawable.ic_menu_close_clear_cancel);
+
 			purgePref.setEnabled(false);
+			uninstallPref.setEnabled(false);
 		} else {
 			// display connected panic app
 			try {
@@ -172,7 +193,9 @@ public class PanicPreferencesFragment extends PreferenceFragmentCompat
 						pm.getApplicationInfo(triggerPackageName, 0)));
 				panicAppPref.setIcon(
 						pm.getApplicationIcon(triggerPackageName));
+
 				purgePref.setEnabled(true);
+				uninstallPref.setEnabled(true);
 			} catch (PackageManager.NameNotFoundException e) {
 				// revert back to no app, just to be safe
 				PanicResponder.setTriggerPackageName(getActivity(),
diff --git a/briar-android/src/org/briarproject/android/panic/PanicResponderActivity.java b/briar-android/src/org/briarproject/android/panic/PanicResponderActivity.java
index 1f3c0fd900de3d062bfb1c3c0b8d347b37d88709..674ce556efef10045500420cb64f856b4ab72cd1 100644
--- a/briar-android/src/org/briarproject/android/panic/PanicResponderActivity.java
+++ b/briar-android/src/org/briarproject/android/panic/PanicResponderActivity.java
@@ -2,6 +2,7 @@ package org.briarproject.android.panic;
 
 import android.content.Intent;
 import android.content.SharedPreferences;
+import android.net.Uri;
 import android.os.Build;
 import android.os.Bundle;
 import android.support.v7.preference.PreferenceManager;
@@ -20,6 +21,10 @@ import info.guardianproject.panic.Panic;
 import info.guardianproject.panic.PanicResponder;
 import info.guardianproject.trustedintents.TrustedIntents;
 
+import static org.briarproject.android.panic.PanicPreferencesFragment.KEY_LOCK;
+import static org.briarproject.android.panic.PanicPreferencesFragment.KEY_PURGE;
+import static org.briarproject.android.panic.PanicPreferencesFragment.KEY_UNINSTALL;
+
 public class PanicResponderActivity extends BriarActivity {
 
 	private static final Logger LOG =
@@ -50,23 +55,29 @@ public class PanicResponderActivity extends BriarActivity {
 					LOG.info("Performing destructive responses...");
 
 					// Performing destructive panic responses
-					if (sharedPref.getBoolean("pref_key_purge", false)) {
+					if (sharedPref.getBoolean(KEY_UNINSTALL, false)) {
+						LOG.info("Purging all data...");
+						deleteAllData();
+
+						LOG.info("Uninstalling...");
+						Intent uninstall = new Intent(Intent.ACTION_DELETE);
+						uninstall.setData(
+								Uri.parse("package:" + getPackageName()));
+						startActivity(uninstall);
+					}
+					else if (sharedPref.getBoolean(KEY_PURGE, false)) {
 						LOG.info("Purging all data...");
 						deleteAllData();
 					}
-					// still sign out if enabled
-					else if (sharedPref.getBoolean("pref_key_lock", true)) {
+					else if (sharedPref.getBoolean(KEY_LOCK, true)) {
 						LOG.info("Signing out...");
 						signOut(true);
 					}
 
-					// TODO add other panic behavior such as:
-					// * send a pre-defined message to certain contacts (#212)
-					// * uninstall the app (#211)
-
+					// TODO send a pre-defined message to certain contacts (#212)
 				}
 				// Performing non-destructive default panic response
-				else if (sharedPref.getBoolean("pref_key_lock", true)) {
+				else if (sharedPref.getBoolean(KEY_LOCK, true)) {
 					LOG.info("Signing out...");
 					signOut(true);
 				}