diff --git a/briar-android/src/org/briarproject/android/contact/ContactListActivity.java b/briar-android/src/org/briarproject/android/contact/ContactListActivity.java
index 4b39c1295d141212aa7a6c61a1c540c69592c6f1..79188325459bfcc0ae347f82f233eb40e653cacd 100644
--- a/briar-android/src/org/briarproject/android/contact/ContactListActivity.java
+++ b/briar-android/src/org/briarproject/android/contact/ContactListActivity.java
@@ -133,7 +133,12 @@ public class ContactListActivity extends BriarActivity
 	private void displayContacts(final List<ContactListItem> contacts) {
 		runOnUiThread(new Runnable() {
 			public void run() {
-				adapter.addAll(contacts);
+				if (contacts.size() > 0) {
+					adapter.addAll(contacts);
+				} else {
+					// no contacts to display, make sure progress bar is hidden
+					list.showData();
+				}
 			}
 		});
 	}
diff --git a/briar-android/src/org/briarproject/android/util/BriarRecyclerView.java b/briar-android/src/org/briarproject/android/util/BriarRecyclerView.java
index 891d155ffe3340271cfdf293bde933d2bbe3af5c..4e50c1d5d53a55ff8cca34f58cf66d02200ecab9 100644
--- a/briar-android/src/org/briarproject/android/util/BriarRecyclerView.java
+++ b/briar-android/src/org/briarproject/android/util/BriarRecyclerView.java
@@ -49,9 +49,7 @@ public class BriarRecyclerView extends FrameLayout {
 		emptyView = (TextView) v.findViewById(R.id.emptyView);
 		progressBar = (ProgressBar) v.findViewById(R.id.progressBar);
 
-		recyclerView.setVisibility(View.INVISIBLE);
-		emptyView.setVisibility(View.INVISIBLE);
-		progressBar.setVisibility(View.VISIBLE);
+		showProgressBar();
 
 		emptyObserver = new RecyclerView.AdapterDataObserver() {
 			@Override
@@ -72,6 +70,11 @@ public class BriarRecyclerView extends FrameLayout {
 	}
 
 	public void setAdapter(RecyclerView.Adapter adapter) {
+		RecyclerView.Adapter oldAdapter = recyclerView.getAdapter();
+		if (oldAdapter != null) {
+			oldAdapter.unregisterAdapterDataObserver(emptyObserver);
+		}
+
 		recyclerView.setAdapter(adapter);
 
 		if (adapter != null) {
@@ -95,7 +98,7 @@ public class BriarRecyclerView extends FrameLayout {
 		progressBar.setVisibility(View.VISIBLE);
 	}
 
-	private void showData() {
+	public void showData() {
 		RecyclerView.Adapter<?> adapter = recyclerView.getAdapter();
 		if (adapter != null) {
 			if (adapter.getItemCount() == 0) {
@@ -109,4 +112,8 @@ public class BriarRecyclerView extends FrameLayout {
 		}
 	}
 
+	public RecyclerView getRecyclerView() {
+		return recyclerView;
+	}
+
 }