diff --git a/briar-android/src/org/briarproject/android/contact/ContactListActivity.java b/briar-android/src/org/briarproject/android/contact/ContactListActivity.java
index 094de1133cff60609df45b6be465bc7df1cfe62f..02a244c23ca8cece8ea00256a670315e3e43de7d 100644
--- a/briar-android/src/org/briarproject/android/contact/ContactListActivity.java
+++ b/briar-android/src/org/briarproject/android/contact/ContactListActivity.java
@@ -28,7 +28,6 @@ import org.briarproject.api.Contact;
 import org.briarproject.api.ContactId;
 import org.briarproject.api.db.DatabaseComponent;
 import org.briarproject.api.db.DbException;
-import org.briarproject.api.db.MessageHeader;
 import org.briarproject.api.db.NoSuchContactException;
 import org.briarproject.api.event.ContactAddedEvent;
 import org.briarproject.api.event.ContactConnectedEvent;
@@ -41,6 +40,7 @@ import org.briarproject.api.event.MessageAddedEvent;
 import org.briarproject.api.event.MessageExpiredEvent;
 import org.briarproject.api.plugins.ConnectionRegistry;
 import org.briarproject.api.sync.GroupId;
+import org.briarproject.api.sync.MessageHeader;
 
 import java.util.Collection;
 import java.util.logging.Logger;
diff --git a/briar-android/src/org/briarproject/android/contact/ContactListItem.java b/briar-android/src/org/briarproject/android/contact/ContactListItem.java
index 19cec75cc08724f00bd6d0168d0e84deab72f9b5..0e2cca813d495816a75d432d4f9c66f4746f7636 100644
--- a/briar-android/src/org/briarproject/android/contact/ContactListItem.java
+++ b/briar-android/src/org/briarproject/android/contact/ContactListItem.java
@@ -1,8 +1,8 @@
 package org.briarproject.android.contact;
 
 import org.briarproject.api.Contact;
-import org.briarproject.api.db.MessageHeader;
 import org.briarproject.api.sync.GroupId;
+import org.briarproject.api.sync.MessageHeader;
 
 import java.util.Collection;
 
diff --git a/briar-android/src/org/briarproject/android/contact/ConversationActivity.java b/briar-android/src/org/briarproject/android/contact/ConversationActivity.java
index 76cc95310debe65cc429f8d3bf9f959bee173f32..017cbfa0dff2752729d5608ba03821654e00505d 100644
--- a/briar-android/src/org/briarproject/android/contact/ConversationActivity.java
+++ b/briar-android/src/org/briarproject/android/contact/ConversationActivity.java
@@ -27,8 +27,6 @@ import org.briarproject.api.android.AndroidNotificationManager;
 import org.briarproject.api.crypto.CryptoExecutor;
 import org.briarproject.api.db.DatabaseComponent;
 import org.briarproject.api.db.DbException;
-import org.briarproject.api.db.MessageHeader;
-import org.briarproject.api.db.MessageHeader.State;
 import org.briarproject.api.db.NoSuchContactException;
 import org.briarproject.api.db.NoSuchMessageException;
 import org.briarproject.api.db.NoSuchSubscriptionException;
@@ -44,6 +42,8 @@ import org.briarproject.api.sync.Group;
 import org.briarproject.api.sync.GroupId;
 import org.briarproject.api.sync.Message;
 import org.briarproject.api.sync.MessageFactory;
+import org.briarproject.api.sync.MessageHeader;
+import org.briarproject.api.sync.MessageHeader.State;
 import org.briarproject.api.sync.MessageId;
 import org.briarproject.util.StringUtils;
 
diff --git a/briar-android/src/org/briarproject/android/contact/ConversationAdapter.java b/briar-android/src/org/briarproject/android/contact/ConversationAdapter.java
index f78f4bb682d100ed3259b623257554101f1704f4..240bdea4dd32bc0b08eb76c847ed9f3b95e25588 100644
--- a/briar-android/src/org/briarproject/android/contact/ConversationAdapter.java
+++ b/briar-android/src/org/briarproject/android/contact/ConversationAdapter.java
@@ -1,21 +1,5 @@
 package org.briarproject.android.contact;
 
-import static android.view.Gravity.BOTTOM;
-import static android.view.Gravity.LEFT;
-import static android.view.View.INVISIBLE;
-import static android.widget.LinearLayout.HORIZONTAL;
-import static android.widget.LinearLayout.VERTICAL;
-import static org.briarproject.android.util.CommonLayoutParams.MATCH_WRAP;
-
-import java.util.ArrayList;
-
-import org.briarproject.R;
-import org.briarproject.android.util.ElasticHorizontalSpace;
-import org.briarproject.android.util.LayoutUtils;
-import org.briarproject.api.db.MessageHeader;
-import org.briarproject.api.db.MessageHeader.State;
-import org.briarproject.util.StringUtils;
-
 import android.content.Context;
 import android.content.res.Resources;
 import android.text.format.DateUtils;
@@ -27,6 +11,21 @@ import android.widget.ImageView;
 import android.widget.LinearLayout;
 import android.widget.TextView;
 
+import org.briarproject.R;
+import org.briarproject.android.util.ElasticHorizontalSpace;
+import org.briarproject.android.util.LayoutUtils;
+import org.briarproject.api.sync.MessageHeader;
+import org.briarproject.api.sync.MessageHeader.State;
+import org.briarproject.util.StringUtils;
+
+import java.util.ArrayList;
+
+import static android.view.Gravity.BOTTOM;
+import static android.view.Gravity.LEFT;
+import static android.widget.LinearLayout.HORIZONTAL;
+import static android.widget.LinearLayout.VERTICAL;
+import static org.briarproject.android.util.CommonLayoutParams.MATCH_WRAP;
+
 class ConversationAdapter extends ArrayAdapter<ConversationItem> {
 
 	private final int pad;
diff --git a/briar-android/src/org/briarproject/android/contact/ConversationItem.java b/briar-android/src/org/briarproject/android/contact/ConversationItem.java
index ac5637e16400a26946fb9f3a72a67ce8b984d7a1..292bd4a713289d448e61582ef696bff8e10698b6 100644
--- a/briar-android/src/org/briarproject/android/contact/ConversationItem.java
+++ b/briar-android/src/org/briarproject/android/contact/ConversationItem.java
@@ -1,7 +1,7 @@
 package org.briarproject.android.contact;
 
-import org.briarproject.api.db.MessageHeader;
-import org.briarproject.api.db.MessageHeader.State;
+import org.briarproject.api.sync.MessageHeader;
+import org.briarproject.api.sync.MessageHeader.State;
 
 // This class is not thread-safe
 class ConversationItem {
diff --git a/briar-android/src/org/briarproject/android/forum/ForumActivity.java b/briar-android/src/org/briarproject/android/forum/ForumActivity.java
index e17719ece3252304e8c1338f476d96365112e987..3c4b5a2674b142f8db42ce6a09959aed8668ed34 100644
--- a/briar-android/src/org/briarproject/android/forum/ForumActivity.java
+++ b/briar-android/src/org/briarproject/android/forum/ForumActivity.java
@@ -21,7 +21,6 @@ import org.briarproject.api.Author;
 import org.briarproject.api.android.AndroidNotificationManager;
 import org.briarproject.api.db.DatabaseComponent;
 import org.briarproject.api.db.DbException;
-import org.briarproject.api.db.MessageHeader;
 import org.briarproject.api.db.NoSuchMessageException;
 import org.briarproject.api.db.NoSuchSubscriptionException;
 import org.briarproject.api.event.Event;
@@ -32,6 +31,7 @@ import org.briarproject.api.event.MessageExpiredEvent;
 import org.briarproject.api.event.SubscriptionRemovedEvent;
 import org.briarproject.api.sync.Group;
 import org.briarproject.api.sync.GroupId;
+import org.briarproject.api.sync.MessageHeader;
 import org.briarproject.api.sync.MessageId;
 
 import java.util.ArrayList;
diff --git a/briar-android/src/org/briarproject/android/forum/ForumAdapter.java b/briar-android/src/org/briarproject/android/forum/ForumAdapter.java
index cc8db894db029791b93f35c204b8a053fef64041..8660f4381497c3663941b5b3930b2f292b2532cd 100644
--- a/briar-android/src/org/briarproject/android/forum/ForumAdapter.java
+++ b/briar-android/src/org/briarproject/android/forum/ForumAdapter.java
@@ -14,7 +14,7 @@ import org.briarproject.R;
 import org.briarproject.android.util.AuthorView;
 import org.briarproject.android.util.LayoutUtils;
 import org.briarproject.api.Author;
-import org.briarproject.api.db.MessageHeader;
+import org.briarproject.api.sync.MessageHeader;
 import org.briarproject.util.StringUtils;
 
 import java.util.ArrayList;
diff --git a/briar-android/src/org/briarproject/android/forum/ForumItem.java b/briar-android/src/org/briarproject/android/forum/ForumItem.java
index ca42d7e9a6f9df994c4c667906d9ffbe6d1a5398..ec87cbf0349ad53fbfd5d016b51187a60f544eaa 100644
--- a/briar-android/src/org/briarproject/android/forum/ForumItem.java
+++ b/briar-android/src/org/briarproject/android/forum/ForumItem.java
@@ -1,6 +1,6 @@
 package org.briarproject.android.forum;
 
-import org.briarproject.api.db.MessageHeader;
+import org.briarproject.api.sync.MessageHeader;
 
 // This class is not thread-safe
 class ForumItem {
diff --git a/briar-android/src/org/briarproject/android/forum/ForumListActivity.java b/briar-android/src/org/briarproject/android/forum/ForumListActivity.java
index 1b061f44abb803450bea77e5ad73f8990183c0cb..38f1d4356111c769c7de3762963b8d6582a1d760 100644
--- a/briar-android/src/org/briarproject/android/forum/ForumListActivity.java
+++ b/briar-android/src/org/briarproject/android/forum/ForumListActivity.java
@@ -25,7 +25,6 @@ import org.briarproject.android.util.LayoutUtils;
 import org.briarproject.android.util.ListLoadingProgressBar;
 import org.briarproject.api.db.DatabaseComponent;
 import org.briarproject.api.db.DbException;
-import org.briarproject.api.db.MessageHeader;
 import org.briarproject.api.db.NoSuchSubscriptionException;
 import org.briarproject.api.event.Event;
 import org.briarproject.api.event.EventBus;
@@ -37,6 +36,7 @@ import org.briarproject.api.event.SubscriptionAddedEvent;
 import org.briarproject.api.event.SubscriptionRemovedEvent;
 import org.briarproject.api.sync.Group;
 import org.briarproject.api.sync.GroupId;
+import org.briarproject.api.sync.MessageHeader;
 
 import java.util.Collection;
 import java.util.Map;
diff --git a/briar-android/src/org/briarproject/android/forum/ForumListItem.java b/briar-android/src/org/briarproject/android/forum/ForumListItem.java
index a41ae98f3a3b69bf92c50faa2906e04ee171f70a..3eef6c43618ac539375465903d101f0ee4c39154 100644
--- a/briar-android/src/org/briarproject/android/forum/ForumListItem.java
+++ b/briar-android/src/org/briarproject/android/forum/ForumListItem.java
@@ -1,7 +1,7 @@
 package org.briarproject.android.forum;
 
-import org.briarproject.api.db.MessageHeader;
 import org.briarproject.api.sync.Group;
+import org.briarproject.api.sync.MessageHeader;
 
 import java.util.Collection;
 
diff --git a/briar-api/src/org/briarproject/api/db/DatabaseComponent.java b/briar-api/src/org/briarproject/api/db/DatabaseComponent.java
index c76a155d92ff467de22bf135977dc1a8d0f2d348..9aff24206c413deb01aa4c34f424048addd80444 100644
--- a/briar-api/src/org/briarproject/api/db/DatabaseComponent.java
+++ b/briar-api/src/org/briarproject/api/db/DatabaseComponent.java
@@ -179,7 +179,7 @@ public interface DatabaseComponent {
 	 * Returns the headers of all messages in the inbox group for the given
 	 * contact, or null if no inbox group has been set.
 	 */
-	Collection<MessageHeader> getInboxMessageHeaders(ContactId c)
+	Collection<org.briarproject.api.sync.MessageHeader> getInboxMessageHeaders(ContactId c)
 			throws DbException;
 
 	/** Returns the local pseudonym with the given ID. */
@@ -199,7 +199,7 @@ public interface DatabaseComponent {
 	byte[] getMessageBody(MessageId m) throws DbException;
 
 	/** Returns the headers of all messages in the given group. */
-	Collection<MessageHeader> getMessageHeaders(GroupId g)
+	Collection<org.briarproject.api.sync.MessageHeader> getMessageHeaders(GroupId g)
 			throws DbException;
 
 	/** Returns true if the given message is marked as read. */
diff --git a/briar-api/src/org/briarproject/api/db/MessageHeader.java b/briar-api/src/org/briarproject/api/sync/MessageHeader.java
similarity index 94%
rename from briar-api/src/org/briarproject/api/db/MessageHeader.java
rename to briar-api/src/org/briarproject/api/sync/MessageHeader.java
index 7ba4eaaf1cf2f8ad0bf7d13b56b2e970a05c1045..e70e1fef16cc9faff5f47d5c2584c78d45611247 100644
--- a/briar-api/src/org/briarproject/api/db/MessageHeader.java
+++ b/briar-api/src/org/briarproject/api/sync/MessageHeader.java
@@ -1,8 +1,6 @@
-package org.briarproject.api.db;
+package org.briarproject.api.sync;
 
 import org.briarproject.api.Author;
-import org.briarproject.api.sync.GroupId;
-import org.briarproject.api.sync.MessageId;
 
 public class MessageHeader {
 
diff --git a/briar-core/src/org/briarproject/db/Database.java b/briar-core/src/org/briarproject/db/Database.java
index feeb4381b0ef442d3b751160f174b2bd119dd61b..9e0e8045c3ecbd441d31bed8f2ace426248c55d9 100644
--- a/briar-core/src/org/briarproject/db/Database.java
+++ b/briar-core/src/org/briarproject/db/Database.java
@@ -10,10 +10,10 @@ import org.briarproject.api.TransportConfig;
 import org.briarproject.api.TransportId;
 import org.briarproject.api.TransportProperties;
 import org.briarproject.api.db.DbException;
-import org.briarproject.api.db.MessageHeader;
 import org.briarproject.api.sync.Group;
 import org.briarproject.api.sync.GroupId;
 import org.briarproject.api.sync.Message;
+import org.briarproject.api.sync.MessageHeader;
 import org.briarproject.api.sync.MessageId;
 import org.briarproject.api.sync.RetentionAck;
 import org.briarproject.api.sync.RetentionUpdate;
diff --git a/briar-core/src/org/briarproject/db/DatabaseComponentImpl.java b/briar-core/src/org/briarproject/db/DatabaseComponentImpl.java
index caa88847d20785b027626f01e880af55406d8b2b..280dda05b9bc9e12cb648a08ad63fe0fe12ce1ea 100644
--- a/briar-core/src/org/briarproject/db/DatabaseComponentImpl.java
+++ b/briar-core/src/org/briarproject/db/DatabaseComponentImpl.java
@@ -13,7 +13,6 @@ import org.briarproject.api.db.ContactExistsException;
 import org.briarproject.api.db.DatabaseComponent;
 import org.briarproject.api.db.DbException;
 import org.briarproject.api.db.LocalAuthorExistsException;
-import org.briarproject.api.db.MessageHeader;
 import org.briarproject.api.db.NoSuchContactException;
 import org.briarproject.api.db.NoSuchLocalAuthorException;
 import org.briarproject.api.db.NoSuchMessageException;
@@ -46,6 +45,7 @@ import org.briarproject.api.sync.Ack;
 import org.briarproject.api.sync.Group;
 import org.briarproject.api.sync.GroupId;
 import org.briarproject.api.sync.Message;
+import org.briarproject.api.sync.MessageHeader;
 import org.briarproject.api.sync.MessageId;
 import org.briarproject.api.sync.Offer;
 import org.briarproject.api.sync.Request;
diff --git a/briar-core/src/org/briarproject/db/JdbcDatabase.java b/briar-core/src/org/briarproject/db/JdbcDatabase.java
index f0dd8c5324de994be12b369d88078ed5093f4551..f51f4e192ecb4140b61db23dcf22a22758a73c2e 100644
--- a/briar-core/src/org/briarproject/db/JdbcDatabase.java
+++ b/briar-core/src/org/briarproject/db/JdbcDatabase.java
@@ -12,11 +12,11 @@ import org.briarproject.api.TransportProperties;
 import org.briarproject.api.crypto.SecretKey;
 import org.briarproject.api.db.DbClosedException;
 import org.briarproject.api.db.DbException;
-import org.briarproject.api.db.MessageHeader;
-import org.briarproject.api.db.MessageHeader.State;
 import org.briarproject.api.sync.Group;
 import org.briarproject.api.sync.GroupId;
 import org.briarproject.api.sync.Message;
+import org.briarproject.api.sync.MessageHeader;
+import org.briarproject.api.sync.MessageHeader.State;
 import org.briarproject.api.sync.MessageId;
 import org.briarproject.api.sync.RetentionAck;
 import org.briarproject.api.sync.RetentionUpdate;
diff --git a/briar-tests/src/org/briarproject/db/H2DatabaseTest.java b/briar-tests/src/org/briarproject/db/H2DatabaseTest.java
index 4c0b0b6e2ee483e86b82d6773e5fd6c6ef70e46a..686789f687f62e0089f88f0cd80db7dc0d7b9453 100644
--- a/briar-tests/src/org/briarproject/db/H2DatabaseTest.java
+++ b/briar-tests/src/org/briarproject/db/H2DatabaseTest.java
@@ -13,10 +13,10 @@ import org.briarproject.api.TransportId;
 import org.briarproject.api.TransportProperties;
 import org.briarproject.api.crypto.SecretKey;
 import org.briarproject.api.db.DbException;
-import org.briarproject.api.db.MessageHeader;
 import org.briarproject.api.sync.Group;
 import org.briarproject.api.sync.GroupId;
 import org.briarproject.api.sync.Message;
+import org.briarproject.api.sync.MessageHeader;
 import org.briarproject.api.sync.MessageId;
 import org.briarproject.api.transport.IncomingKeys;
 import org.briarproject.api.transport.OutgoingKeys;
@@ -43,7 +43,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
 
 import static java.util.concurrent.TimeUnit.SECONDS;
 import static org.briarproject.api.AuthorConstants.MAX_PUBLIC_KEY_LENGTH;
-import static org.briarproject.api.db.MessageHeader.State.STORED;
+import static org.briarproject.api.sync.MessageHeader.State.STORED;
 import static org.briarproject.api.sync.MessagingConstants.GROUP_SALT_LENGTH;
 import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;