diff --git a/briar-android/src/org/briarproject/plugins/droidtooth/DroidtoothPlugin.java b/briar-android/src/org/briarproject/plugins/droidtooth/DroidtoothPlugin.java
index 3355a984ae2c48495813748643039382690e71c1..aaa38352b64f9c5fab29837543d98468ade58897 100644
--- a/briar-android/src/org/briarproject/plugins/droidtooth/DroidtoothPlugin.java
+++ b/briar-android/src/org/briarproject/plugins/droidtooth/DroidtoothPlugin.java
@@ -207,7 +207,6 @@ class DroidtoothPlugin implements DuplexPlugin {
 			} catch(IOException e) {
 				// This is expected when the socket is closed
 				if(LOG.isLoggable(INFO)) LOG.info(e.toString());
-				tryToClose(socket);
 				return;
 			}
 			if(LOG.isLoggable(INFO)) {
@@ -228,18 +227,8 @@ class DroidtoothPlugin implements DuplexPlugin {
 		tryToClose(socket);
 		// Disable Bluetooth if we enabled it and it's still enabled
 		if(wasDisabled && adapter.isEnabled()) {
-			// Try to disable the adapter and wait for the result
-			LOG.info("Disabling Bluetooth");
-			IntentFilter filter = new IntentFilter(ACTION_STATE_CHANGED);
-			DisableBluetoothReceiver receiver = new DisableBluetoothReceiver();
-			appContext.registerReceiver(receiver, filter);
-			if(adapter.disable()) {
-				LOG.info("Disabling Bluetooth");
-				receiver.waitForStateChange();
-			} else {
-				LOG.info("Could not disable Bluetooth");
-			}
-			appContext.unregisterReceiver(receiver);
+			if(adapter.disable()) LOG.info("Disabling Bluetooth");
+			else LOG.info("Could not disable Bluetooth");
 		}
 	}
 
@@ -392,28 +381,6 @@ class DroidtoothPlugin implements DuplexPlugin {
 		}
 	}
 
-	private class DisableBluetoothReceiver extends BroadcastReceiver {
-
-		private final CountDownLatch latch = new CountDownLatch(1);
-
-		public void onReceive(Context ctx, Intent intent) {
-			int state = intent.getIntExtra(EXTRA_STATE, 0);
-			if(state == STATE_OFF) {
-				LOG.info("Bluetooth disabled");
-				latch.countDown();
-			}
-		}
-
-		private void waitForStateChange() {
-			try {
-				latch.await();
-			} catch(InterruptedException e) {
-				LOG.info("Interrupted while disabling Bluetooth");
-				Thread.currentThread().interrupt();
-			}
-		}
-	}
-
 	private class DiscoveryThread extends Thread {
 
 		private final LatchedReference<BluetoothSocket> socketLatch;
diff --git a/briar-android/src/org/briarproject/plugins/tor/TorPlugin.java b/briar-android/src/org/briarproject/plugins/tor/TorPlugin.java
index a7e3186addac5ca7d5d7a457e49356b23f2f58d8..be89d867eec02a61d3f28a9b09d89e5f4c962d65 100644
--- a/briar-android/src/org/briarproject/plugins/tor/TorPlugin.java
+++ b/briar-android/src/org/briarproject/plugins/tor/TorPlugin.java
@@ -534,7 +534,6 @@ class TorPlugin implements DuplexPlugin, EventHandler {
 			} catch(IOException e) {
 				// This is expected when the socket is closed
 				if(LOG.isLoggable(INFO)) LOG.info(e.toString());
-				tryToClose(ss);
 				return;
 			}
 			LOG.info("Connection received");
diff --git a/briar-core/src/org/briarproject/plugins/tcp/TcpPlugin.java b/briar-core/src/org/briarproject/plugins/tcp/TcpPlugin.java
index 673828b438d1e7f3fbe4969040979c6ed21ccb5d..c5de9d6c86d8c5727463e32e752b355141a090dc 100644
--- a/briar-core/src/org/briarproject/plugins/tcp/TcpPlugin.java
+++ b/briar-core/src/org/briarproject/plugins/tcp/TcpPlugin.java
@@ -139,7 +139,6 @@ abstract class TcpPlugin implements DuplexPlugin {
 			} catch(IOException e) {
 				// This is expected when the socket is closed
 				if(LOG.isLoggable(INFO)) LOG.info(e.toString());
-				tryToClose(socket);
 				return;
 			}
 			if(LOG.isLoggable(INFO))
diff --git a/briar-desktop/src/org/briarproject/plugins/bluetooth/BluetoothPlugin.java b/briar-desktop/src/org/briarproject/plugins/bluetooth/BluetoothPlugin.java
index ec2258c4ca60502c4328723fd48912ad9a2934eb..364b44a51a9db2dd46c0408391f3e41b053f29b6 100644
--- a/briar-desktop/src/org/briarproject/plugins/bluetooth/BluetoothPlugin.java
+++ b/briar-desktop/src/org/briarproject/plugins/bluetooth/BluetoothPlugin.java
@@ -157,7 +157,6 @@ class BluetoothPlugin implements DuplexPlugin {
 			} catch(IOException e) {
 				// This is expected when the socket is closed
 				if(LOG.isLoggable(INFO)) LOG.info(e.toString());
-				tryToClose(ss);
 				return;
 			}
 			callback.incomingConnectionCreated(wrapSocket(s));