diff --git a/briar-core/src/org/briarproject/db/Database.java b/briar-core/src/org/briarproject/db/Database.java
index 130c4f1c3f09ecc4f3da410b448b599f384cd646..e269178b9ef739aa90e219d7ce65952fbd2dfaad 100644
--- a/briar-core/src/org/briarproject/db/Database.java
+++ b/briar-core/src/org/briarproject/db/Database.java
@@ -712,7 +712,7 @@ interface Database<T> {
 	 * Makes a group visible to the given contact, adds it to the contact's
 	 * subscriptions, and sets it as the inbox group for the contact.
 	 * <p>
-	 * Locking: contact read, message write, subscription write.
+	 * Locking: subscription write.
 	 */
 	public void setInboxGroup(T txn, ContactId c, Group g) throws DbException;
 
diff --git a/briar-core/src/org/briarproject/db/DatabaseComponentImpl.java b/briar-core/src/org/briarproject/db/DatabaseComponentImpl.java
index 2ae0579b0147ca065ee7de748b98f33c03f53487..c7f375fe6b7fe81285774c7bf0aa77eadbc4cc52 100644
--- a/briar-core/src/org/briarproject/db/DatabaseComponentImpl.java
+++ b/briar-core/src/org/briarproject/db/DatabaseComponentImpl.java
@@ -1770,25 +1770,20 @@ DatabaseCleaner.Callback {
 	public void setInboxGroup(ContactId c, Group g) throws DbException {
 		contactLock.readLock().lock();
 		try {
-			messageLock.writeLock().lock();
+			subscriptionLock.writeLock().lock();
 			try {
-				subscriptionLock.writeLock().lock();
+				T txn = db.startTransaction();
 				try {
-					T txn = db.startTransaction();
-					try {
-						if(!db.containsContact(txn, c))
-							throw new NoSuchContactException();
-						db.setInboxGroup(txn, c, g);
-						db.commitTransaction(txn);
-					} catch(DbException e) {
-						db.abortTransaction(txn);
-						throw e;
-					}
-				} finally {
-					subscriptionLock.writeLock().unlock();
+					if(!db.containsContact(txn, c))
+						throw new NoSuchContactException();
+					db.setInboxGroup(txn, c, g);
+					db.commitTransaction(txn);
+				} catch(DbException e) {
+					db.abortTransaction(txn);
+					throw e;
 				}
 			} finally {
-				messageLock.writeLock().unlock();
+				subscriptionLock.writeLock().unlock();
 			}
 		} finally {
 			contactLock.readLock().unlock();