diff --git a/lib/private/activitymanager.php b/lib/private/activitymanager.php
index f31b121c8e82f1b82528ee2315f52def3d9e9c9d..e0ee7c1b055a5a853f1965898b638fbbbadec4ee 100644
--- a/lib/private/activitymanager.php
+++ b/lib/private/activitymanager.php
@@ -247,16 +247,28 @@ class ActivityManager implements IManager {
 	 * @return array
 	 */
 	function getQueryForFilter($filter) {
+
+		$conditions = array();
+		$parameters = array();
+
 		foreach($this->extensions as $extension) {
 			$c = $extension();
 			if ($c instanceof IExtension) {
 				$result = $c->getQueryForFilter($filter);
 				if (is_array($result)) {
-					return $result;
+					list($condition, $parameter) = $result;
+					if ($condition && is_array($parameter)) {
+						$conditions[] = $condition;
+						$parameters = array_merge($parameters, $parameter);
+					}
 				}
 			}
 		}
 
-		return array(null, null);
+		if (empty($conditions)) {
+			return array(null, null);
+		}
+
+		return array(' and ((' . implode(') or (', $conditions) . '))', $parameters);
 	}
 }
diff --git a/tests/lib/activitymanager.php b/tests/lib/activitymanager.php
index 85f8320de09bb23aeab1fb89387afea1cd1b366b..0683eb68193129f4d527672667899e037fb7fd73 100644
--- a/tests/lib/activitymanager.php
+++ b/tests/lib/activitymanager.php
@@ -87,11 +87,14 @@ class Test_ActivityManager extends \Test\TestCase {
 	}
 
 	public function testQueryForFilter() {
+		$this->activityManager->registerExtension(function() {
+			return new SimpleExtension();
+		});
 		$result = $this->activityManager->getQueryForFilter('filter1');
 		$this->assertEquals(
 			array(
-				'`app` = ? and `message` like ?',
-				array('mail', 'ownCloud%')
+				' and ((`app` = ? and `message` like ?) or (`app` = ? and `message` like ?))',
+				array('mail', 'ownCloud%', 'mail', 'ownCloud%')
 			), $result
 		);