diff --git a/briar-core/src/net/sf/briar/messaging/duplex/DuplexConnection.java b/briar-core/src/net/sf/briar/messaging/duplex/DuplexConnection.java
index 9b43ebd1c9259bc518d84820201cae6311dbedcc..d5fae8e24e3e61de1a33aa7ee2118b9f3105e637 100644
--- a/briar-core/src/net/sf/briar/messaging/duplex/DuplexConnection.java
+++ b/briar-core/src/net/sf/briar/messaging/duplex/DuplexConnection.java
@@ -135,8 +135,7 @@ abstract class DuplexConnection implements DatabaseListener {
 	public void eventOccurred(DatabaseEvent e) {
 		if(e instanceof ContactRemovedEvent) {
 			ContactRemovedEvent c = (ContactRemovedEvent) e;
-			// FIXME: Listeners should not block
-			if(contactId.equals(c.getContactId())) dispose(false, true);
+			if(contactId.equals(c.getContactId())) writerTasks.add(CLOSE);
 		} else if(e instanceof GroupMessageAddedEvent) {
 			if(canSendOffer.getAndSet(false))
 				dbExecutor.execute(new GenerateOffer());