diff --git a/briar-android/.classpath b/briar-android/.classpath
index e2baa5a2d560b278fc459dadebfb15ad8561aa80..9651c7b62447d0aa4e15944e5951f6b9792bb209 100644
--- a/briar-android/.classpath
+++ b/briar-android/.classpath
@@ -6,7 +6,7 @@
 	<classpathentry combineaccessrules="false" exported="true" kind="src" path="/briar-api"/>
 	<classpathentry exported="true" kind="lib" path="/briar-api/libs/guice-3.0-no_aop.jar"/>
 	<classpathentry exported="true" kind="lib" path="/briar-api/libs/javax.inject.jar"/>
-	<classpathentry exported="true" kind="lib" path="/briar-core/libs/h2small-1.3.170.jar"/>
+	<classpathentry exported="true" kind="lib" path="/briar-core/libs/h2small-1.4.190.jar"/>
 	<classpathentry exported="true" kind="lib" path="/briar-core/libs/weupnp-0.1.3-SNAPSHOT-briar.jar"/>
 	<classpathentry exported="true" kind="lib" path="/briar-core/libs/lcrypto-jdk15on-152.jar"/>
 	<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
diff --git a/briar-android/briar-android.iml b/briar-android/briar-android.iml
index 8cb7b86d61127a7fddbdee543407582b0d15f133..70b2d2d816429d973bf0c3a041f116e1a34c2334 100644
--- a/briar-android/briar-android.iml
+++ b/briar-android/briar-android.iml
@@ -81,7 +81,7 @@
     <orderEntry type="library" exported="" name="roboguice-2.0" level="project" />
     <orderEntry type="library" exported="" name="jsocks" level="project" />
     <orderEntry type="library" exported="" name="guice-3.0-no_aop" level="project" />
-    <orderEntry type="library" exported="" name="h2small-1.3.170" level="project" />
+    <orderEntry type="library" exported="" name="h2small-1.4.190" level="project" />
     <orderEntry type="library" exported="" name="lcrypto-jdk15on-152" level="project" />
     <orderEntry type="library" exported="" name="weupnp-0.1.3-SNAPSHOT-briar" level="project" />
     <orderEntry type="library" exported="" name="javax.inject" level="project" />
diff --git a/briar-android/src/org/briarproject/plugins/droidtooth/DroidtoothPlugin.java b/briar-android/src/org/briarproject/plugins/droidtooth/DroidtoothPlugin.java
index a8a18ce2bbd8b6569e3032db5c2a757a6579ac96..c898aef03e4efb367eebe4cd0b7309498607031a 100644
--- a/briar-android/src/org/briarproject/plugins/droidtooth/DroidtoothPlugin.java
+++ b/briar-android/src/org/briarproject/plugins/droidtooth/DroidtoothPlugin.java
@@ -119,7 +119,7 @@ class DroidtoothPlugin implements DuplexPlugin {
 			Thread.currentThread().interrupt();
 			throw new IOException("Interrupted while getting BluetoothAdapter");
 		} catch (ExecutionException e) {
-			throw new IOException(e.toString());
+			throw new IOException(e);
 		}
 		if (adapter == null) {
 			LOG.info("Bluetooth is not supported");
@@ -156,13 +156,12 @@ class DroidtoothPlugin implements DuplexPlugin {
 				p.put("address", adapter.getAddress());
 				callback.mergeLocalProperties(p);
 				// Bind a server socket to accept connections from contacts
-				BluetoothServerSocket ss = null;
+				BluetoothServerSocket ss;
 				try {
 					ss = InsecureBluetooth.listen(adapter, "RFCOMM", getUuid());
 				} catch (IOException e) {
 					if (LOG.isLoggable(WARNING))
 						LOG.log(WARNING, e.toString(), e);
-					tryToClose(ss);
 					return;
 				}
 				if (!isRunning()) {
@@ -331,12 +330,11 @@ class DroidtoothPlugin implements DuplexPlugin {
 		UUID uuid = UUID.nameUUIDFromBytes(b);
 		if (LOG.isLoggable(INFO)) LOG.info("Invitation UUID " + uuid);
 		// Bind a server socket for receiving invitation connections
-		BluetoothServerSocket ss = null;
+		BluetoothServerSocket ss;
 		try {
 			ss = InsecureBluetooth.listen(adapter, "RFCOMM", uuid);
 		} catch (IOException e) {
 			if (LOG.isLoggable(WARNING)) LOG.log(WARNING, e.toString(), e);
-			tryToClose(ss);
 			return null;
 		}
 		// Start the background threads
diff --git a/briar-android/src/org/briarproject/plugins/droidtooth/InsecureBluetooth.java b/briar-android/src/org/briarproject/plugins/droidtooth/InsecureBluetooth.java
index 572fe2b5279da39cab0136f0ae732a88ba4447ec..4d6e1117d5e41099890ca5a3ce697d8b2e9424bb 100644
--- a/briar-android/src/org/briarproject/plugins/droidtooth/InsecureBluetooth.java
+++ b/briar-android/src/org/briarproject/plugins/droidtooth/InsecureBluetooth.java
@@ -85,18 +85,18 @@ class InsecureBluetooth {
 			setCloseHandler.invoke(socket, mHandler, handle);
 			return socket;
 		} catch (NoSuchMethodException e) {
-			throw new IOException(e.toString());
+			throw new IOException(e);
 		} catch (NoSuchFieldException e) {
-			throw new IOException(e.toString());
+			throw new IOException(e);
 		} catch (IllegalAccessException e) {
-			throw new IOException(e.toString());
+			throw new IOException(e);
 		} catch (InstantiationException e) {
-			throw new IOException(e.toString());
+			throw new IOException(e);
 		} catch (InvocationTargetException e) {
 			if (e.getCause() instanceof IOException) {
 				throw (IOException) e.getCause();
 			} else {
-				throw new IOException(e.toString());
+				throw new IOException(e);
 			}
 		}
 	}
@@ -122,18 +122,18 @@ class InsecureBluetooth {
 			}
 			return socket;
 		} catch (NoSuchMethodException e) {
-			throw new IOException(e.toString());
+			throw new IOException(e);
 		} catch (NoSuchFieldException e) {
-			throw new IOException(e.toString());
+			throw new IOException(e);
 		} catch (IllegalAccessException e) {
-			throw new IOException(e.toString());
+			throw new IOException(e);
 		} catch (InstantiationException e) {
-			throw new IOException(e.toString());
+			throw new IOException(e);
 		} catch (InvocationTargetException e) {
 			if (e.getCause() instanceof IOException) {
 				throw (IOException) e.getCause();
 			} else {
-				throw new IOException(e.toString());
+				throw new IOException(e);
 			}
 		}
 	}
@@ -155,16 +155,16 @@ class InsecureBluetooth {
 			return constructor.newInstance(TYPE_RFCOMM, -1, false, true, device,
 					-1, new ParcelUuid(uuid));
 		} catch (NoSuchMethodException e) {
-			throw new IOException(e.toString());
+			throw new IOException(e);
 		} catch (IllegalAccessException e) {
-			throw new IOException(e.toString());
+			throw new IOException(e);
 		} catch (InstantiationException e) {
-			throw new IOException(e.toString());
+			throw new IOException(e);
 		} catch (InvocationTargetException e) {
 			if (e.getCause() instanceof IOException) {
 				throw (IOException) e.getCause();
 			} else {
-				throw new IOException(e.toString());
+				throw new IOException(e);
 			}
 		}
 	}
diff --git a/briar-api/briar-api.iml b/briar-api/briar-api.iml
index c1ef8459b12109a50cde94e67b8f0d874a4e41bf..3d154955e7a70a77e4fb68e7ea73656de97d2456 100644
--- a/briar-api/briar-api.iml
+++ b/briar-api/briar-api.iml
@@ -13,7 +13,7 @@
       </configuration>
     </facet>
   </component>
-  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7" inherit-compiler-output="false">
+  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_6" inherit-compiler-output="false">
     <output url="file://$MODULE_DIR$/build/classes/main" />
     <output-test url="file://$MODULE_DIR$/build/classes/test" />
     <exclude-output />
@@ -28,6 +28,5 @@
     <orderEntry type="sourceFolder" forTests="false" />
     <orderEntry type="library" exported="" name="guice-3.0-no_aop" level="project" />
     <orderEntry type="library" exported="" name="javax.inject" level="project" />
-    <orderEntry type="library" exported="" name="briar-api.briar-api" level="project" />
   </component>
 </module>
\ No newline at end of file
diff --git a/briar-core/.classpath b/briar-core/.classpath
index cd794d7c84fb402c1216322d11783dd4b5903965..db3b175cb43bea422993dff2a80a443a238999df 100644
--- a/briar-core/.classpath
+++ b/briar-core/.classpath
@@ -4,7 +4,7 @@
 	<classpathentry combineaccessrules="false" kind="src" path="/briar-api"/>
 	<classpathentry kind="lib" path="/briar-api/libs/guice-3.0-no_aop.jar"/>
 	<classpathentry kind="lib" path="/briar-api/libs/javax.inject.jar"/>
-	<classpathentry kind="lib" path="libs/h2small-1.3.170.jar"/>
+	<classpathentry kind="lib" path="libs/h2small-1.4.190.jar"/>
 	<classpathentry kind="lib" path="libs/weupnp-0.1.3-SNAPSHOT-briar.jar"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
 	<classpathentry kind="lib" path="libs/lcrypto-jdk15on-152.jar" sourcepath="libs/source/lcrypto-jdk15on-152-src.jar"/>
diff --git a/briar-core/briar-core.iml b/briar-core/briar-core.iml
index 6db499bfb8be658999a675f9f5cb33a3b19ce96a..3b5b4dce8d4112eee0b47a45da792b12e71d2e7a 100644
--- a/briar-core/briar-core.iml
+++ b/briar-core/briar-core.iml
@@ -13,7 +13,7 @@
       </configuration>
     </facet>
   </component>
-  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7" inherit-compiler-output="false">
+  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_6" inherit-compiler-output="false">
     <output url="file://$MODULE_DIR$/build/classes/main" />
     <output-test url="file://$MODULE_DIR$/build/classes/test" />
     <exclude-output />
@@ -29,9 +29,8 @@
     <orderEntry type="module" module-name="briar-api" exported="" />
     <orderEntry type="library" exported="" name="guice-3.0-no_aop" level="project" />
     <orderEntry type="library" exported="" name="javax.inject" level="project" />
-    <orderEntry type="library" exported="" name="h2small-1.3.170" level="project" />
+    <orderEntry type="library" exported="" name="h2small-1.4.190.jar" level="project" />
     <orderEntry type="library" exported="" name="lcrypto-jdk15on-152" level="project" />
     <orderEntry type="library" exported="" name="weupnp-0.1.3-SNAPSHOT-briar" level="project" />
-    <orderEntry type="library" exported="" name="briar-core.briar-core" level="project" />
   </component>
 </module>
\ No newline at end of file
diff --git a/briar-core/libs/h2small-1.3.170.jar b/briar-core/libs/h2small-1.3.170.jar
deleted file mode 100644
index 013dc7e856ae09227b5ebddcec4f9a11057e9c57..0000000000000000000000000000000000000000
Binary files a/briar-core/libs/h2small-1.3.170.jar and /dev/null differ
diff --git a/briar-core/libs/h2small-1.4.190.jar b/briar-core/libs/h2small-1.4.190.jar
new file mode 100644
index 0000000000000000000000000000000000000000..031c51cafc68793f0f4f2bb0fcade5b3dad725ce
Binary files /dev/null and b/briar-core/libs/h2small-1.4.190.jar differ
diff --git a/briar-desktop/briar-desktop.iml b/briar-desktop/briar-desktop.iml
index cb1b15a1dd37cc2ebc0685ef0e23e3cf2593604b..84dc23fcfc830a8dc41226418433c896ebf273eb 100644
--- a/briar-desktop/briar-desktop.iml
+++ b/briar-desktop/briar-desktop.iml
@@ -13,7 +13,7 @@
       </configuration>
     </facet>
   </component>
-  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7" inherit-compiler-output="false">
+  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_6" inherit-compiler-output="false">
     <output url="file://$MODULE_DIR$/build/classes/main" />
     <output-test url="file://$MODULE_DIR$/build/classes/test" />
     <exclude-output />
@@ -30,7 +30,7 @@
     <orderEntry type="module" module-name="briar-core" exported="" />
     <orderEntry type="library" exported="" name="guice-3.0-no_aop" level="project" />
     <orderEntry type="library" exported="" name="javax.inject" level="project" />
-    <orderEntry type="library" exported="" name="h2small-1.3.170" level="project" />
+    <orderEntry type="library" exported="" name="h2small-1.4.190.jar" level="project" />
     <orderEntry type="library" exported="" name="lcrypto-jdk15on-152" level="project" />
     <orderEntry type="library" exported="" name="weupnp-0.1.3-SNAPSHOT-briar" level="project" />
     <orderEntry type="library" exported="" name="bluecove-2.1.1-SNAPSHOT-briar" level="project" />
@@ -39,6 +39,5 @@
     <orderEntry type="library" exported="" name="jnotify-0.94" level="project" />
     <orderEntry type="library" exported="" name="bluecove-gpl-2.1.1-SNAPSHOT" level="project" />
     <orderEntry type="library" exported="" name="jssc-0.9-briar" level="project" />
-    <orderEntry type="library" exported="" name="briar-desktop.briar-desktop" level="project" />
   </component>
 </module>
\ No newline at end of file
diff --git a/briar-tests/briar-tests.iml b/briar-tests/briar-tests.iml
index 50b0b9e7081eee6105806acc202f45cb7db4d46e..54e209e64b4a3645c773183185858c0c6cdc5fe8 100644
--- a/briar-tests/briar-tests.iml
+++ b/briar-tests/briar-tests.iml
@@ -13,7 +13,7 @@
       </configuration>
     </facet>
   </component>
-  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7" inherit-compiler-output="false">
+  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_6" inherit-compiler-output="false">
     <output url="file://$MODULE_DIR$/build/classes/main" />
     <output-test url="file://$MODULE_DIR$/build/classes/test" />
     <exclude-output />
@@ -30,7 +30,7 @@
     <orderEntry type="module" module-name="briar-desktop" exported="" />
     <orderEntry type="library" exported="" name="guice-3.0-no_aop" level="project" />
     <orderEntry type="library" exported="" name="javax.inject" level="project" />
-    <orderEntry type="library" exported="" name="h2small-1.3.170" level="project" />
+    <orderEntry type="library" exported="" name="h2small-1.4.190.jar" level="project" />
     <orderEntry type="library" exported="" name="lcrypto-jdk15on-152" level="project" />
     <orderEntry type="library" exported="" name="weupnp-0.1.3-SNAPSHOT-briar" level="project" />
     <orderEntry type="library" exported="" name="bluecove-2.1.1-SNAPSHOT-briar" level="project" />
@@ -43,6 +43,5 @@
     <orderEntry type="library" exported="" name="jmock-2.5.1" level="project" />
     <orderEntry type="library" exported="" name="hamcrest-core-1.1" level="project" />
     <orderEntry type="library" exported="" name="hamcrest-library-1.1" level="project" />
-    <orderEntry type="library" exported="" name="briar-tests.briar-tests" level="project" />
   </component>
 </module>
\ No newline at end of file