diff --git a/api/net/sf/briar/api/ExceptionHandler.java b/api/net/sf/briar/api/ExceptionHandler.java
new file mode 100644
index 0000000000000000000000000000000000000000..ccc91d094e40e424bef5a64fc8b463c296d05744
--- /dev/null
+++ b/api/net/sf/briar/api/ExceptionHandler.java
@@ -0,0 +1,6 @@
+package net.sf.briar.api;
+
+public interface ExceptionHandler<E extends Exception> {
+
+	void handleException(E exception);
+}
diff --git a/api/net/sf/briar/api/transport/ConnectionRecogniser.java b/api/net/sf/briar/api/transport/ConnectionRecogniser.java
index 7e23e370ab1e29c03ce0c2a07c89aa4870e9185f..aa448648c5bdc1ca7f45f0bf9736b51e3e649464 100644
--- a/api/net/sf/briar/api/transport/ConnectionRecogniser.java
+++ b/api/net/sf/briar/api/transport/ConnectionRecogniser.java
@@ -1,5 +1,6 @@
 package net.sf.briar.api.transport;
 
+import net.sf.briar.api.ExceptionHandler;
 import net.sf.briar.api.db.DbException;
 import net.sf.briar.api.protocol.TransportId;
 
@@ -15,12 +16,10 @@ public interface ConnectionRecogniser {
 	 */
 	void acceptConnection(TransportId t, byte[] tag, Callback c);
 
-	interface Callback {
+	interface Callback extends ExceptionHandler<DbException> {
 
 		void connectionAccepted(ConnectionContext ctx);
 
 		void connectionRejected();
-
-		void handleException(DbException e);
 	}
 }
diff --git a/components/net/sf/briar/transport/ConnectionDispatcherImpl.java b/components/net/sf/briar/transport/ConnectionDispatcherImpl.java
index e2a49f6bd7d3a8cc16281ae08e1e4608bc6b8131..1415e242e805a533686608451ba9693f6a83bb59 100644
--- a/components/net/sf/briar/transport/ConnectionDispatcherImpl.java
+++ b/components/net/sf/briar/transport/ConnectionDispatcherImpl.java
@@ -58,7 +58,7 @@ class ConnectionDispatcherImpl implements ConnectionDispatcher {
 			}
 
 			public void connectionRejected() {
-				r.dispose(false);
+				r.dispose(true);
 			}
 
 			public void handleException(DbException e) {
@@ -103,7 +103,7 @@ class ConnectionDispatcherImpl implements ConnectionDispatcher {
 			}
 
 			public void connectionRejected() {
-				s.dispose(false);
+				s.dispose(true);
 			}
 
 			public void handleException(DbException e) {