diff --git a/briar-core/src/net/sf/briar/db/DatabaseComponentImpl.java b/briar-core/src/net/sf/briar/db/DatabaseComponentImpl.java
index ea68dd7f1004b83df983f754ab90af3e691ad55c..b723cc1270130bbd575d60e2a1576961e232ea0a 100644
--- a/briar-core/src/net/sf/briar/db/DatabaseComponentImpl.java
+++ b/briar-core/src/net/sf/briar/db/DatabaseComponentImpl.java
@@ -714,6 +714,7 @@ DatabaseCleaner.Callback {
 		} finally {
 			contactLock.readLock().unlock();
 		}
+		if(offered.isEmpty()) return null;
 		return new Offer(offered);
 	}
 
@@ -1369,7 +1370,10 @@ DatabaseCleaner.Callback {
 							throw new NoSuchTransportException();
 						long counter = db.incrementConnectionCounter(txn, c, t,
 								period);
-						db.setLastConnected(txn, c, clock.currentTimeMillis());
+						if(counter != -1) {
+							long now = clock.currentTimeMillis();
+							db.setLastConnected(txn, c, now);
+						}
 						db.commitTransaction(txn);
 						return counter;
 					} catch(DbException e) {