diff --git a/briar-core/src/net/sf/briar/db/JdbcDatabase.java b/briar-core/src/net/sf/briar/db/JdbcDatabase.java
index a456bcdbb8c54c8da0978d55ec785442bd11b85c..ea940ffa317a6fe74bbc6f9beae8598bb984b590 100644
--- a/briar-core/src/net/sf/briar/db/JdbcDatabase.java
+++ b/briar-core/src/net/sf/briar/db/JdbcDatabase.java
@@ -2419,7 +2419,8 @@ abstract class JdbcDatabase implements Database<Connection> {
 					+ " ON tp.transportId = tv.transportId"
 					+ " WHERE tv.contactId = ?"
 					+ " AND localVersion > localAcked"
-					+ " AND expiry < ?";
+					+ " AND expiry < ?"
+					+ " ORDER BY tp.transportId";
 			ps = txn.prepareStatement(sql);
 			ps.setInt(1, c.getInt());
 			ps.setLong(2, now);
@@ -2437,6 +2438,7 @@ abstract class JdbcDatabase implements Database<Connection> {
 					p = new TransportProperties();
 					updates.add(new TransportUpdate(id, p, version));
 					txCounts.add(txCount);
+					lastId = id;
 				}
 				p.put(key, value);
 			}