diff --git a/briar-android/src/net/sf/briar/android/messages/ConversationActivity.java b/briar-android/src/net/sf/briar/android/messages/ConversationActivity.java
index 5188bbbe7e303dbcd0e605ffa2c1658ff1614d4d..c28abac256fb2bc37e7aa1857deb830808942396 100644
--- a/briar-android/src/net/sf/briar/android/messages/ConversationActivity.java
+++ b/briar-android/src/net/sf/briar/android/messages/ConversationActivity.java
@@ -50,6 +50,7 @@ implements DatabaseListener, OnClickListener, OnItemClickListener {
 	@Inject @DatabaseExecutor private Executor dbExecutor;
 
 	private ConversationAdapter adapter = null;
+	private ListView list = null;
 	private String contactName = null;
 	private volatile ContactId contactId = null;
 
@@ -71,7 +72,7 @@ implements DatabaseListener, OnClickListener, OnItemClickListener {
 		layout.setGravity(CENTER_HORIZONTAL);
 
 		adapter = new ConversationAdapter(this);
-		ListView list = new ListView(this);
+		list = new ListView(this);
 		// Give me all the width and all the unused height
 		list.setLayoutParams(new LayoutParams(MATCH_PARENT, WRAP_CONTENT, 1f));
 		list.setAdapter(adapter);
@@ -149,9 +150,16 @@ implements DatabaseListener, OnClickListener, OnItemClickListener {
 			final Collection<PrivateMessageHeader> headers) {
 		runOnUiThread(new Runnable() {
 			public void run() {
+				int firstUnread = -1;
 				adapter.clear();
-				for(PrivateMessageHeader h : headers) adapter.add(h);
+				for(PrivateMessageHeader h : headers) {
+					if(firstUnread == -1 && !h.isRead())
+						firstUnread = adapter.getCount();
+					adapter.add(h);
+				}
 				adapter.sort(AscendingHeaderComparator.INSTANCE);
+				if(firstUnread == -1) list.setSelection(adapter.getCount() - 1);
+				else list.setSelection(firstUnread);
 			}
 		});
 	}