diff --git a/briar-core/src/org/briarproject/db/DatabaseModule.java b/briar-core/src/org/briarproject/db/DatabaseModule.java
index 10edb618afd4c590e67689a52f3c6d0c699fbd2b..11719acb602aeb80263927e876558a543c50d044 100644
--- a/briar-core/src/org/briarproject/db/DatabaseModule.java
+++ b/briar-core/src/org/briarproject/db/DatabaseModule.java
@@ -25,9 +25,6 @@ import com.google.inject.Provides;
 
 public class DatabaseModule extends AbstractModule {
 
-	/** The maximum number of executor threads. */
-	private static final int MAX_EXECUTOR_THREADS = 10;
-
 	private final ExecutorService databaseExecutor;
 
 	public DatabaseModule() {
@@ -36,9 +33,9 @@ public class DatabaseModule extends AbstractModule {
 		// Discard tasks that are submitted during shutdown
 		RejectedExecutionHandler policy =
 				new ThreadPoolExecutor.DiscardPolicy();
-		// Create a limited # of threads and keep them in the pool for 60 secs
-		databaseExecutor = new ThreadPoolExecutor(0, MAX_EXECUTOR_THREADS,
-				60, SECONDS, queue, policy);
+		// Use a single thread and keep it in the pool for 60 secs
+		databaseExecutor = new ThreadPoolExecutor(0, 1, 60, SECONDS, queue,
+				policy);
 	}
 
 	protected void configure() {
diff --git a/briar-core/src/org/briarproject/messaging/duplex/DuplexConnection.java b/briar-core/src/org/briarproject/messaging/duplex/DuplexConnection.java
index 56ec0aa93db900a8b507c83cab36b1e09a6147e5..de6d569a5ecdc96fa803289fc1e928a9e68711b2 100644
--- a/briar-core/src/org/briarproject/messaging/duplex/DuplexConnection.java
+++ b/briar-core/src/org/briarproject/messaging/duplex/DuplexConnection.java
@@ -276,7 +276,7 @@ abstract class DuplexConnection implements EventListener {
 		}
 	}
 
-	// This task runs on a database thread
+	// This task runs on the database thread
 	private class ReceiveAck implements Runnable {
 
 		private final Ack ack;
@@ -315,7 +315,7 @@ abstract class DuplexConnection implements EventListener {
 		}
 	}
 
-	// This task runs on a database thread
+	// This task runs on the database thread
 	private class ReceiveMessage implements Runnable {
 
 		private final Message message;
@@ -334,7 +334,7 @@ abstract class DuplexConnection implements EventListener {
 		}
 	}
 
-	// This task runs on a database thread
+	// This task runs on the database thread
 	private class ReceiveOffer implements Runnable {
 
 		private final Offer offer;
@@ -353,7 +353,7 @@ abstract class DuplexConnection implements EventListener {
 		}
 	}
 
-	// This task runs on a database thread
+	// This task runs on the database thread
 	private class ReceiveRequest implements Runnable {
 
 		private final Request request;
@@ -372,7 +372,7 @@ abstract class DuplexConnection implements EventListener {
 		}
 	}
 
-	// This task runs on a database thread
+	// This task runs on the database thread
 	private class ReceiveRetentionAck implements Runnable {
 
 		private final RetentionAck ack;
@@ -391,7 +391,7 @@ abstract class DuplexConnection implements EventListener {
 		}
 	}
 
-	// This task runs on a database thread
+	// This task runs on the database thread
 	private class ReceiveRetentionUpdate implements Runnable {
 
 		private final RetentionUpdate update;
@@ -410,7 +410,7 @@ abstract class DuplexConnection implements EventListener {
 		}
 	}
 
-	// This task runs on a database thread
+	// This task runs on the database thread
 	private class ReceiveSubscriptionAck implements Runnable {
 
 		private final SubscriptionAck ack;
@@ -429,7 +429,7 @@ abstract class DuplexConnection implements EventListener {
 		}
 	}
 
-	// This task runs on a database thread
+	// This task runs on the database thread
 	private class ReceiveSubscriptionUpdate implements Runnable {
 
 		private final SubscriptionUpdate update;
@@ -448,7 +448,7 @@ abstract class DuplexConnection implements EventListener {
 		}
 	}
 
-	// This task runs on a database thread
+	// This task runs on the database thread
 	private class ReceiveTransportAck implements Runnable {
 
 		private final TransportAck ack;
@@ -467,7 +467,7 @@ abstract class DuplexConnection implements EventListener {
 		}
 	}
 
-	// This task runs on a database thread
+	// This task runs on the database thread
 	private class ReceiveTransportUpdate implements Runnable {
 
 		private final TransportUpdate update;
@@ -486,7 +486,7 @@ abstract class DuplexConnection implements EventListener {
 		}
 	}
 
-	// This task runs on a database thread
+	// This task runs on the database thread
 	private class GenerateAck implements Runnable {
 
 		public void run() {
@@ -525,7 +525,7 @@ abstract class DuplexConnection implements EventListener {
 		}
 	}
 
-	// This task runs on a database thread
+	// This task runs on the database thread
 	private class GenerateBatch implements Runnable {
 
 		public void run() {
@@ -564,7 +564,7 @@ abstract class DuplexConnection implements EventListener {
 		}
 	}
 
-	// This task runs on a database thread
+	// This task runs on the database thread
 	private class GenerateOffer implements Runnable {
 
 		public void run() {
@@ -603,7 +603,7 @@ abstract class DuplexConnection implements EventListener {
 		}
 	}
 
-	// This task runs on a database thread
+	// This task runs on the database thread
 	private class GenerateRequest implements Runnable {
 
 		public void run() {
@@ -642,7 +642,7 @@ abstract class DuplexConnection implements EventListener {
 		}
 	}
 
-	// This task runs on a database thread
+	// This task runs on the database thread
 	private class GenerateRetentionAck implements Runnable {
 
 		public void run() {
@@ -679,7 +679,7 @@ abstract class DuplexConnection implements EventListener {
 		}
 	}
 
-	// This task runs on a database thread
+	// This task runs on the database thread
 	private class GenerateRetentionUpdate implements Runnable {
 
 		public void run() {
@@ -717,7 +717,7 @@ abstract class DuplexConnection implements EventListener {
 		}
 	}
 
-	// This task runs on a database thread
+	// This task runs on the database thread
 	private class GenerateSubscriptionAck implements Runnable {
 
 		public void run() {
@@ -754,7 +754,7 @@ abstract class DuplexConnection implements EventListener {
 		}
 	}
 
-	// This task runs on a database thread
+	// This task runs on the database thread
 	private class GenerateSubscriptionUpdate implements Runnable {
 
 		public void run() {
@@ -792,7 +792,7 @@ abstract class DuplexConnection implements EventListener {
 		}
 	}
 
-	// This task runs on a database thread
+	// This task runs on the database thread
 	private class GenerateTransportAcks implements Runnable {
 
 		public void run() {
@@ -830,7 +830,7 @@ abstract class DuplexConnection implements EventListener {
 		}
 	}
 
-	// This task runs on a database thread
+	// This task runs on the database thread
 	private class GenerateTransportUpdates implements Runnable {
 
 		public void run() {