diff --git a/briar-android/src/org/briarproject/android/AndroidNotificationManagerImpl.java b/briar-android/src/org/briarproject/android/AndroidNotificationManagerImpl.java
index ff2c852edf8d2e677ddb93ba68bfd6f3b6f1a90c..c3ffb1e31dfdafe059192e1a1a1a4ba438fa4021 100644
--- a/briar-android/src/org/briarproject/android/AndroidNotificationManagerImpl.java
+++ b/briar-android/src/org/briarproject/android/AndroidNotificationManagerImpl.java
@@ -69,6 +69,7 @@ EventListener {
 			new HashMap<GroupId, Integer>();
 	private int contactTotal = 0, forumTotal = 0;
 	private int nextRequestId = 0;
+	private ContactId activeContact;
 
 	private volatile Settings settings = new Settings();
 
@@ -113,11 +114,14 @@ EventListener {
 	public void showPrivateMessageNotification(ContactId c) {
 		lock.lock();
 		try {
-			Integer count = contactCounts.get(c);
-			if (count == null) contactCounts.put(c, 1);
-			else contactCounts.put(c, count + 1);
-			contactTotal++;
-			updatePrivateMessageNotification();
+			// check first if user has this conversation open at the moment
+			if (activeContact == null || !activeContact.equals(c)) {
+				Integer count = contactCounts.get(c);
+				if (count == null) contactCounts.put(c, 1);
+				else contactCounts.put(c, count + 1);
+				contactTotal++;
+				updatePrivateMessageNotification();
+			}
 		} finally {
 			lock.unlock();
 		}
@@ -135,6 +139,26 @@ EventListener {
 		}
 	}
 
+	public void blockPrivateMessageNotification(ContactId c) {
+		lock.lock();
+		try {
+			activeContact = c;
+		} finally {
+			lock.unlock();
+		}
+	}
+
+	public void unblockPrivateMessageNotification(ContactId c) {
+		lock.lock();
+		try {
+			if (activeContact != null && activeContact.equals(c)) {
+				activeContact = null;
+			}
+		} finally {
+			lock.unlock();
+		}
+	}
+
 	// Locking: lock
 	private void updatePrivateMessageNotification() {
 		if (contactTotal == 0) {
diff --git a/briar-android/src/org/briarproject/android/contact/ConversationActivity.java b/briar-android/src/org/briarproject/android/contact/ConversationActivity.java
index f15e90eaf484bf8b49b9d82fcd4edb46ff7df01c..18f24f9c992811be40f3a5eed8c7e016ea31ec1f 100644
--- a/briar-android/src/org/briarproject/android/contact/ConversationActivity.java
+++ b/briar-android/src/org/briarproject/android/contact/ConversationActivity.java
@@ -122,6 +122,7 @@ public class ConversationActivity extends BriarActivity
 	public void onResume() {
 		super.onResume();
 		eventBus.addListener(this);
+		notificationManager.blockPrivateMessageNotification(contactId);
 		loadContactAndGroup();
 		loadHeaders();
 
@@ -133,6 +134,7 @@ public class ConversationActivity extends BriarActivity
 	public void onPause() {
 		super.onPause();
 		eventBus.removeListener(this);
+		notificationManager.unblockPrivateMessageNotification(contactId);
 		if (isFinishing()) markMessagesRead();
 	}
 
diff --git a/briar-api/src/org/briarproject/api/android/AndroidNotificationManager.java b/briar-api/src/org/briarproject/api/android/AndroidNotificationManager.java
index 67e6e2a5823e3ff234c470e80034437acef3f565..d51c6e3f7b5ccf90c37c7a8e5946c4e4505b9bb7 100644
--- a/briar-api/src/org/briarproject/api/android/AndroidNotificationManager.java
+++ b/briar-api/src/org/briarproject/api/android/AndroidNotificationManager.java
@@ -14,6 +14,10 @@ public interface AndroidNotificationManager extends Service {
 
 	void clearPrivateMessageNotification(ContactId c);
 
+	void blockPrivateMessageNotification(ContactId c);
+
+	void unblockPrivateMessageNotification(ContactId c);
+
 	void showForumPostNotification(GroupId g);
 
 	void clearForumPostNotification(GroupId g);