diff --git a/api/net/sf/briar/api/protocol/writers/BatchWriter.java b/api/net/sf/briar/api/protocol/writers/BatchWriter.java
index b105b249aa30d7e2e3b3090b2b06727642a475ea..60818ac56945c4e5abc9f07300bcb2c04e1ff890 100644
--- a/api/net/sf/briar/api/protocol/writers/BatchWriter.java
+++ b/api/net/sf/briar/api/protocol/writers/BatchWriter.java
@@ -7,9 +7,6 @@ import net.sf.briar.api.protocol.BatchId;
 /** An interface for creating a batch packet. */
 public interface BatchWriter {
 
-	/** Returns the capacity of the batch in bytes. */
-	int getCapacity();
-
 	/**
 	 * Attempts to add the given raw message to the batch and returns true if
 	 * it was added.
diff --git a/components/net/sf/briar/db/DatabaseComponentImpl.java b/components/net/sf/briar/db/DatabaseComponentImpl.java
index eda2c74c8bf8c49ebb885fdb922d102c1f66b935..8b8c7d5c980028e7b05674daaaeb428d3aafe911 100644
--- a/components/net/sf/briar/db/DatabaseComponentImpl.java
+++ b/components/net/sf/briar/db/DatabaseComponentImpl.java
@@ -31,6 +31,7 @@ import net.sf.briar.api.protocol.GroupId;
 import net.sf.briar.api.protocol.Message;
 import net.sf.briar.api.protocol.MessageId;
 import net.sf.briar.api.protocol.Offer;
+import net.sf.briar.api.protocol.ProtocolConstants;
 import net.sf.briar.api.protocol.SubscriptionUpdate;
 import net.sf.briar.api.protocol.TransportUpdate;
 import net.sf.briar.api.protocol.writers.AckWriter;
@@ -422,7 +423,7 @@ DatabaseCleaner.Callback {
 					try {
 						T txn = db.startTransaction();
 						try {
-							int capacity = b.getCapacity();
+							int capacity = ProtocolConstants.MAX_PACKET_LENGTH;
 							Collection<MessageId> sendable =
 								db.getSendableMessages(txn, c, capacity);
 							for(MessageId m : sendable) {
@@ -486,12 +487,12 @@ DatabaseCleaner.Callback {
 							Iterator<MessageId> it = requested.iterator();
 							while(it.hasNext()) {
 								MessageId m = it.next();
-								byte[] raw = db.getMessageIfSendable(txn, c, m);
 								// If the message is still sendable, try to add
-								// it to the batch. If the batch is full, don't
-								// treat the message as considered, and don't
-								// try to add any further messages.
+								// it to the batch
+								byte[] raw = db.getMessageIfSendable(txn, c, m);
 								if(raw != null) {
+									// If the batch is full, don't treat the
+									// message as considered
 									if(!b.writeMessage(raw)) break;
 									sent.add(m);
 								}
diff --git a/components/net/sf/briar/protocol/writers/BatchWriterImpl.java b/components/net/sf/briar/protocol/writers/BatchWriterImpl.java
index bf134f585f0bce423c70fce0adbfc36a100455ec..fac083baff88986a3979aa29d3300d3b52292a34 100644
--- a/components/net/sf/briar/protocol/writers/BatchWriterImpl.java
+++ b/components/net/sf/briar/protocol/writers/BatchWriterImpl.java
@@ -27,12 +27,6 @@ class BatchWriterImpl implements BatchWriter {
 		this.messageDigest = messageDigest;
 	}
 
-	public int getCapacity() {
-		// Allow one byte for the batch tag, one for the list start tag and
-		// one for the list end tag
-		return ProtocolConstants.MAX_PACKET_LENGTH - 3;
-	}
-
 	public boolean writeMessage(byte[] message) throws IOException {
 		if(!started) {
 			messageDigest.reset();
@@ -41,8 +35,8 @@ class BatchWriterImpl implements BatchWriter {
 			started = true;
 		}
 		// Allow one byte for the list end tag
-		int capacity =
-			ProtocolConstants.MAX_PACKET_LENGTH - (int) w.getBytesWritten() - 1;
+		int capacity = ProtocolConstants.MAX_PACKET_LENGTH
+		- (int) w.getBytesWritten() - 1;
 		if(capacity < message.length) return false;
 		// Bypass the writer and write each raw message directly
 		out.write(message);
diff --git a/test/net/sf/briar/db/DatabaseComponentTest.java b/test/net/sf/briar/db/DatabaseComponentTest.java
index c7b0ba20c12a9167986d7d9a4b9bb67830de0ad1..7540c5b39ee24c5bc904e16a00c5023ecb94f9c1 100644
--- a/test/net/sf/briar/db/DatabaseComponentTest.java
+++ b/test/net/sf/briar/db/DatabaseComponentTest.java
@@ -25,6 +25,7 @@ import net.sf.briar.api.protocol.GroupId;
 import net.sf.briar.api.protocol.Message;
 import net.sf.briar.api.protocol.MessageId;
 import net.sf.briar.api.protocol.Offer;
+import net.sf.briar.api.protocol.ProtocolConstants;
 import net.sf.briar.api.protocol.SubscriptionUpdate;
 import net.sf.briar.api.protocol.TransportUpdate;
 import net.sf.briar.api.protocol.writers.AckWriter;
@@ -41,8 +42,6 @@ import org.junit.Test;
 
 public abstract class DatabaseComponentTest extends TestCase {
 
-	private static final int ONE_MEGABYTE = 1024 * 1024;
-
 	protected final Object txn = new Object();
 	protected final AuthorId authorId;
 	protected final BatchId batchId;
@@ -740,9 +739,8 @@ public abstract class DatabaseComponentTest extends TestCase {
 			allowing(database).containsContact(txn, contactId);
 			will(returnValue(true));
 			// Get the sendable messages
-			oneOf(batchWriter).getCapacity();
-			will(returnValue(ONE_MEGABYTE));
-			oneOf(database).getSendableMessages(txn, contactId, ONE_MEGABYTE);
+			oneOf(database).getSendableMessages(txn, contactId,
+					ProtocolConstants.MAX_PACKET_LENGTH);
 			will(returnValue(sendable));
 			// Try to add both messages to the writer - only manage to add one
 			oneOf(database).getMessage(txn, messageId);