diff --git a/briar-api/src/org/briarproject/api/sync/MessageFactory.java b/briar-api/src/org/briarproject/api/sync/MessageFactory.java
index 6e65fc44cd802225abe22d44a97e037d35410c10..35a37462495619c0812536d8a5e998ea383d103e 100644
--- a/briar-api/src/org/briarproject/api/sync/MessageFactory.java
+++ b/briar-api/src/org/briarproject/api/sync/MessageFactory.java
@@ -1,9 +1,6 @@
 package org.briarproject.api.sync;
 
-import java.io.IOException;
-
 public interface MessageFactory {
 
-	Message createMessage(GroupId groupId, long timestamp, byte[] body)
-			throws IOException;
+	Message createMessage(GroupId groupId, long timestamp, byte[] body);
 }
diff --git a/briar-core/src/org/briarproject/properties/TransportPropertyManagerImpl.java b/briar-core/src/org/briarproject/properties/TransportPropertyManagerImpl.java
index 58e04b4e1dbcca3001b2fda5b65a707fe2af9710..135b74931e109f0f260cbe947903937fb1cb868a 100644
--- a/briar-core/src/org/briarproject/properties/TransportPropertyManagerImpl.java
+++ b/briar-core/src/org/briarproject/properties/TransportPropertyManagerImpl.java
@@ -110,8 +110,6 @@ class TransportPropertyManagerImpl implements TransportPropertyManager,
 			if (LOG.isLoggable(WARNING)) LOG.log(WARNING, e.toString(), e);
 		} catch (FormatException e) {
 			throw new RuntimeException(e);
-		} catch (IOException e) {
-			if (LOG.isLoggable(WARNING)) LOG.log(WARNING, e.toString(), e);
 		} finally {
 			lock.writeLock().unlock();
 		}
@@ -123,7 +121,7 @@ class TransportPropertyManagerImpl implements TransportPropertyManager,
 
 	private void storeMessage(GroupId g, DeviceId dev, TransportId t,
 			TransportProperties p, long version, boolean local, boolean shared)
-			throws DbException, IOException {
+			throws DbException, FormatException {
 		byte[] body = encodeProperties(dev, t, p, version);
 		long now = clock.currentTimeMillis();
 		Message m = messageFactory.createMessage(g, now, body);
diff --git a/briar-core/src/org/briarproject/sync/MessageFactoryImpl.java b/briar-core/src/org/briarproject/sync/MessageFactoryImpl.java
index e32ec110f31602461b2dc1de352b8660139e18c5..1015b7daf77a885a930ea0a3344c8c49d71eeeb4 100644
--- a/briar-core/src/org/briarproject/sync/MessageFactoryImpl.java
+++ b/briar-core/src/org/briarproject/sync/MessageFactoryImpl.java
@@ -10,8 +10,6 @@ import org.briarproject.api.sync.MessageFactory;
 import org.briarproject.api.sync.MessageId;
 import org.briarproject.util.ByteUtils;
 
-import java.io.IOException;
-
 import static org.briarproject.api.sync.SyncConstants.MAX_MESSAGE_BODY_LENGTH;
 import static org.briarproject.api.sync.SyncConstants.MESSAGE_HEADER_LENGTH;
 
@@ -25,8 +23,7 @@ class MessageFactoryImpl implements MessageFactory {
 	}
 
 	@Override
-	public Message createMessage(GroupId groupId, long timestamp, byte[] body)
-			throws IOException {
+	public Message createMessage(GroupId groupId, long timestamp, byte[] body) {
 		if (body.length > MAX_MESSAGE_BODY_LENGTH)
 			throw new IllegalArgumentException();
 		byte[] raw = new byte[MESSAGE_HEADER_LENGTH + body.length];