diff --git a/briar-api/src/net/sf/briar/api/db/DatabaseComponent.java b/briar-api/src/net/sf/briar/api/db/DatabaseComponent.java
index 1b3e9bfd6e886539c6d127d6c2e216f9822002cb..722348bcf6310fe1e154755b5710e37cfe0b891d 100644
--- a/briar-api/src/net/sf/briar/api/db/DatabaseComponent.java
+++ b/briar-api/src/net/sf/briar/api/db/DatabaseComponent.java
@@ -203,10 +203,6 @@ public interface DatabaseComponent {
 	Collection<GroupMessageHeader> getMessageHeaders(GroupId g)
 			throws DbException;
 
-	/** Returns the headers of all private messages. */
-	Collection<PrivateMessageHeader> getPrivateMessageHeaders()
-			throws DbException;
-
 	/**
 	 * Returns the headers of all private messages to or from the given
 	 * contact.
diff --git a/briar-core/src/net/sf/briar/db/Database.java b/briar-core/src/net/sf/briar/db/Database.java
index 2c0987ef1ad0327618edc225ffd6f9a2cdba6075..f00b294a4ecf01b646387aba8878f263970c929e 100644
--- a/briar-core/src/net/sf/briar/db/Database.java
+++ b/briar-core/src/net/sf/briar/db/Database.java
@@ -341,14 +341,6 @@ interface Database<T> {
 	Collection<GroupMessageHeader> getMessageHeaders(T txn, GroupId g)
 			throws DbException;
 
-	/**
-	 * Returns the headers of all private messages.
-	 * <p>
-	 * Locking: message read.
-	 */
-	Collection<PrivateMessageHeader> getPrivateMessageHeaders(T txn)
-			throws DbException;
-
 	/**
 	 * Returns the headers of all private messages to or from the given
 	 * contact.
diff --git a/briar-core/src/net/sf/briar/db/DatabaseComponentImpl.java b/briar-core/src/net/sf/briar/db/DatabaseComponentImpl.java
index 4790da31fbc8ba81febeb858fe4254159d22cd6e..fcaff944b87b5d53b20258a5ff8784ec91dca065 100644
--- a/briar-core/src/net/sf/briar/db/DatabaseComponentImpl.java
+++ b/briar-core/src/net/sf/briar/db/DatabaseComponentImpl.java
@@ -1124,25 +1124,6 @@ DatabaseCleaner.Callback {
 		}
 	}
 
-	public Collection<PrivateMessageHeader> getPrivateMessageHeaders()
-			throws DbException {
-		messageLock.readLock().lock();
-		try {
-			T txn = db.startTransaction();
-			try {
-				Collection<PrivateMessageHeader> headers =
-						db.getPrivateMessageHeaders(txn);
-				db.commitTransaction(txn);
-				return headers;
-			} catch(DbException e) {
-				db.abortTransaction(txn);
-				throw e;
-			}
-		} finally {
-			messageLock.readLock().unlock();
-		}
-	}
-
 	public Collection<PrivateMessageHeader> getPrivateMessageHeaders(
 			ContactId c) throws DbException {
 		messageLock.readLock().lock();
diff --git a/briar-core/src/net/sf/briar/db/JdbcDatabase.java b/briar-core/src/net/sf/briar/db/JdbcDatabase.java
index a4ebf2ff73b99b6dc26d03ee6d0c319594cb4fba..797ea9a56b6a759a88f337241cae256075d6bf57 100644
--- a/briar-core/src/net/sf/briar/db/JdbcDatabase.java
+++ b/briar-core/src/net/sf/briar/db/JdbcDatabase.java
@@ -1762,46 +1762,6 @@ abstract class JdbcDatabase implements Database<Connection> {
 		}
 	}
 
-	public Collection<PrivateMessageHeader> getPrivateMessageHeaders(
-			Connection txn) throws DbException {
-		PreparedStatement ps = null;
-		ResultSet rs = null;
-		try {
-			String sql = "SELECT m.messageId, parentId, contentType, subject,"
-					+ " timestamp, m.contactId, read, starred, seen"
-					+ " FROM messages AS m"
-					+ " JOIN statuses AS s"
-					+ " ON m.messageId = s.messageId"
-					+ " AND m.contactId = s.contactId"
-					+ " WHERE groupId IS NULL";
-			ps = txn.prepareStatement(sql);
-			rs = ps.executeQuery();
-			List<PrivateMessageHeader> headers =
-					new ArrayList<PrivateMessageHeader>();
-			while(rs.next()) {
-				MessageId id = new MessageId(rs.getBytes(1));
-				byte[] b = rs.getBytes(2);
-				MessageId parent = b == null ? null : new MessageId(b);
-				String contentType = rs.getString(3);
-				String subject = rs.getString(4);
-				long timestamp = rs.getLong(5);
-				ContactId contactId = new ContactId(rs.getInt(6));
-				boolean read = rs.getBoolean(7);
-				boolean starred = rs.getBoolean(8);
-				boolean seen = rs.getBoolean(9);
-				headers.add(new PrivateMessageHeader(id, parent, contentType,
-						subject, timestamp, read, starred, contactId, seen));
-			}
-			rs.close();
-			ps.close();
-			return Collections.unmodifiableList(headers);
-		} catch(SQLException e) {
-			tryToClose(rs);
-			tryToClose(ps);
-			throw new DbException(e);
-		}
-	}
-
 	public Collection<PrivateMessageHeader> getPrivateMessageHeaders(
 			Connection txn, ContactId c) throws DbException {
 		PreparedStatement ps = null;