diff --git a/lib/group/group.php b/lib/group/group.php
index d4036b4361b552746048b99d421264983e99788c..7a6393132475a489f779f87a167579de7331ceec 100644
--- a/lib/group/group.php
+++ b/lib/group/group.php
@@ -225,7 +225,7 @@ class Group {
 			$this->emitter->emit('\OC\Group', 'preDelete', array($this));
 		}
 		foreach ($this->backends as $backend) {
-			if ($backend->implementsActions(OC_GROUP_BACKEND_DELETE_GROUP) and $backend->groupExists($this->gid)) {
+			if ($backend->implementsActions(OC_GROUP_BACKEND_DELETE_GROUP)) {
 				$result = true;
 				$backend->deleteGroup($this->gid);
 			}
diff --git a/lib/group/manager.php b/lib/group/manager.php
index 7efcff0ade0bd2b95441a14b887a1a213742191e..bf469d51d1248713aa06f5e1a69bcddbe8a0a07f 100644
--- a/lib/group/manager.php
+++ b/lib/group/manager.php
@@ -85,7 +85,13 @@ class Manager extends PublicEmitter {
 	}
 
 	protected function getGroupObject($gid) {
-		$this->cachedGroups[$gid] = new Group($gid, $this->backends, $this->userManager, $this);
+		$backends = array();
+		foreach ($this->backends as $backend) {
+			if ($backend->groupExists($gid)) {
+				$backends[] = $backend;
+			}
+		}
+		$this->cachedGroups[$gid] = new Group($gid, $backends, $this->userManager, $this);
 		return $this->cachedGroups[$gid];
 	}
 
diff --git a/tests/lib/group/group.php b/tests/lib/group/group.php
index 116aefda81c17b01e4d3a0f17fd33d0d881dcd52..75e975d9e6505bb60e3bb45248b545faac0afc94 100644
--- a/tests/lib/group/group.php
+++ b/tests/lib/group/group.php
@@ -307,10 +307,6 @@ class Group extends \PHPUnit_Framework_TestCase {
 		$backend->expects($this->once())
 			->method('deleteGroup')
 			->with('group1');
-		$backend->expects($this->once())
-			->method('groupExists')
-			->with('group1')
-			->will($this->returnValue(true));
 		$backend->expects($this->any())
 			->method('implementsActions')
 			->will($this->returnValue(true));
diff --git a/tests/lib/group/manager.php b/tests/lib/group/manager.php
index 2ecaefc1406e1c66f417de25569671c56080619b..9d3adf51a0c8b9dff88b0c6d8ef35db2901a8173 100644
--- a/tests/lib/group/manager.php
+++ b/tests/lib/group/manager.php
@@ -17,7 +17,7 @@ class Manager extends \PHPUnit_Framework_TestCase {
 		 * @var \PHPUnit_Framework_MockObject_MockObject | \OC_Group_Backend $backend
 		 */
 		$backend = $this->getMock('\OC_Group_Database');
-		$backend->expects($this->once())
+		$backend->expects($this->any())
 			->method('groupExists')
 			->with('group1')
 			->will($this->returnValue(true));
@@ -85,7 +85,7 @@ class Manager extends \PHPUnit_Framework_TestCase {
 		 * @var \PHPUnit_Framework_MockObject_MockObject | \OC_Group_Backend $backend1
 		 */
 		$backend1 = $this->getMock('\OC_Group_Database');
-		$backend1->expects($this->once())
+		$backend1->expects($this->any())
 			->method('groupExists')
 			->with('group1')
 			->will($this->returnValue(false));
@@ -94,7 +94,7 @@ class Manager extends \PHPUnit_Framework_TestCase {
 		 * @var \PHPUnit_Framework_MockObject_MockObject | \OC_Group_Backend $backend2
 		 */
 		$backend2 = $this->getMock('\OC_Group_Database');
-		$backend2->expects($this->once())
+		$backend2->expects($this->any())
 			->method('groupExists')
 			->with('group1')
 			->will($this->returnValue(true));
@@ -117,7 +117,7 @@ class Manager extends \PHPUnit_Framework_TestCase {
 		 * @var \PHPUnit_Framework_MockObject_MockObject | \OC_Group_Backend $backend
 		 */
 		$backend = $this->getMock('\OC_Group_Database');
-		$backend->expects($this->once())
+		$backend->expects($this->any())
 			->method('groupExists')
 			->with('group1')
 			->will($this->returnValue(false));
@@ -143,7 +143,7 @@ class Manager extends \PHPUnit_Framework_TestCase {
 		 * @var \PHPUnit_Framework_MockObject_MockObject | \OC_Group_Backend $backend
 		 */
 		$backend = $this->getMock('\OC_Group_Database');
-		$backend->expects($this->once())
+		$backend->expects($this->any())
 			->method('groupExists')
 			->with('group1')
 			->will($this->returnValue(true));