diff --git a/components/net/sf/briar/db/DatabaseComponentImpl.java b/components/net/sf/briar/db/DatabaseComponentImpl.java
index 4f269012fbf667d5ec1f870831a666df4eba83e0..11ad89ca39fcb034f340d8243eff2c09920bcd1e 100644
--- a/components/net/sf/briar/db/DatabaseComponentImpl.java
+++ b/components/net/sf/briar/db/DatabaseComponentImpl.java
@@ -1163,7 +1163,7 @@ DatabaseCleaner.Callback {
 						T txn = db.startTransaction();
 						try {
 							for(MessageId m : seen) {
-								db.setStatus(txn, c, m, Status.SEEN);
+								db.setStatusSeenIfVisible(txn, c, m);
 							}
 							db.commitTransaction(txn);
 						} catch(DbException e) {
diff --git a/test/net/sf/briar/db/DatabaseComponentTest.java b/test/net/sf/briar/db/DatabaseComponentTest.java
index 878b8a05a92e28ad2337f28dc65b44d2b5db9d10..13f49901e1d3904980b487c4836fe0f316f4389f 100644
--- a/test/net/sf/briar/db/DatabaseComponentTest.java
+++ b/test/net/sf/briar/db/DatabaseComponentTest.java
@@ -1509,7 +1509,7 @@ public abstract class DatabaseComponentTest extends TestCase {
 			allowing(database).containsContact(txn, contactId);
 			will(returnValue(true));
 			// setSeen(contactId, Collections.singleton(messageId))
-			oneOf(database).setStatus(txn, contactId, messageId, Status.SEEN);
+			oneOf(database).setStatusSeenIfVisible(txn, contactId, messageId);
 		}});
 		DatabaseComponent db = createDatabaseComponent(database, cleaner);