diff --git a/briar-android/src/main/java/org/briarproject/briar/android/threaded/ThreadListControllerImpl.java b/briar-android/src/main/java/org/briarproject/briar/android/threaded/ThreadListControllerImpl.java
index 0793d785adf6ec8744748cf8df28175da1df766a..5f520611afc688ef2c8928ff64a1d2170b3f6be7 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/threaded/ThreadListControllerImpl.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/threaded/ThreadListControllerImpl.java
@@ -99,19 +99,21 @@ public abstract class ThreadListControllerImpl<G extends NamedGroup, I extends T
 
 	@Override
 	public void onActivityDestroy() {
-		dbExecutor.execute(new Runnable() {
-			@Override
-			public void run() {
-				try {
-					messageTracker
-							.storeMessageId(groupId,
-									listener.getFirstVisibleMessageId());
-				} catch (DbException e) {
-					if (LOG.isLoggable(WARNING))
-						LOG.log(WARNING, e.toString(), e);
+		final MessageId messageId = listener.getFirstVisibleMessageId();
+		if (messageId != null) {
+			dbExecutor.execute(new Runnable() {
+				@Override
+				public void run() {
+					try {
+						messageTracker
+								.storeMessageId(groupId, messageId);
+					} catch (DbException e) {
+						if (LOG.isLoggable(WARNING))
+							LOG.log(WARNING, e.toString(), e);
+					}
 				}
-			}
-		});
+			});
+		}
 	}
 
 	@CallSuper