diff --git a/bramble-core/src/main/java/org/briarproject/bramble/db/JdbcDatabase.java b/bramble-core/src/main/java/org/briarproject/bramble/db/JdbcDatabase.java
index 809e8f9b2d8b4215678bb169eb0e50cc0ec949db..f1f795a8c1eb85cb33dd73c7894ad144a9649fde 100644
--- a/bramble-core/src/main/java/org/briarproject/bramble/db/JdbcDatabase.java
+++ b/bramble-core/src/main/java/org/briarproject/bramble/db/JdbcDatabase.java
@@ -1938,8 +1938,7 @@ abstract class JdbcDatabase implements Database<Connection> {
 			String sql = "SELECT expiry FROM statuses"
 					+ " WHERE contactId = ? AND state = ?"
 					+ " AND groupShared = TRUE AND messageShared = TRUE"
-					+ " AND deleted = FALSE"
-					+ " AND seen = FALSE AND requested = FALSE"
+					+ " AND deleted = FALSE AND seen = FALSE"
 					+ " ORDER BY expiry LIMIT 1";
 			ps = txn.prepareStatement(sql);
 			ps.setInt(1, c.getInt());
diff --git a/bramble-core/src/test/java/org/briarproject/bramble/db/JdbcDatabaseTest.java b/bramble-core/src/test/java/org/briarproject/bramble/db/JdbcDatabaseTest.java
index a0f040c2067dac2d86137d95de328c543ccbc493..32d4e5faa4b36b6330f0eeb1c2ab404dde264d7d 100644
--- a/bramble-core/src/test/java/org/briarproject/bramble/db/JdbcDatabaseTest.java
+++ b/bramble-core/src/test/java/org/briarproject/bramble/db/JdbcDatabaseTest.java
@@ -1653,6 +1653,10 @@ public abstract class JdbcDatabaseTest extends BrambleTestCase {
 		db.setMessageShared(txn, messageId);
 		assertEquals(0, db.getNextSendTime(txn, contactId));
 
+		// Mark the message as requested - it should still be sendable
+		db.raiseRequestedFlag(txn, contactId, messageId);
+		assertEquals(0, db.getNextSendTime(txn, contactId));
+
 		// Update the message's expiry time as though we sent it - now the
 		// message should be sendable after one round-trip
 		db.updateExpiryTime(txn, contactId, messageId, 1000);