diff --git a/components/net/sf/briar/db/DatabaseComponentImpl.java b/components/net/sf/briar/db/DatabaseComponentImpl.java
index 66fe5dc1c841a957a50291a83275780f00e21f3b..f864b889781ec02f4807dcb7282fa3b96904ae41 100644
--- a/components/net/sf/briar/db/DatabaseComponentImpl.java
+++ b/components/net/sf/briar/db/DatabaseComponentImpl.java
@@ -218,6 +218,7 @@ DatabaseCleaner.Callback {
 	 * the sender and unseen by all other contacts, and returns true.
 	 * <p>
 	 * Locking: contacts read, messages write, messageStatuses write.
+	 * @param sender may be null for a locally generated message.
 	 */
 	private boolean storeGroupMessage(T txn, Message m, ContactId sender)
 	throws DbException {
@@ -251,7 +252,8 @@ DatabaseCleaner.Callback {
 	private int calculateSendability(T txn, Message m) throws DbException {
 		int sendability = 0;
 		// One point for a good rating
-		if(db.getRating(txn, m.getAuthor()) == Rating.GOOD) sendability++;
+		AuthorId a = m.getAuthor();
+		if(a != null && db.getRating(txn, a) == Rating.GOOD) sendability++;
 		// One point per sendable child (backward inclusion)
 		sendability += db.getNumberOfSendableChildren(txn, m.getId());
 		return sendability;