diff --git a/tests/lib/share/backend.php b/tests/lib/share/backend.php
index 420bd9d88b370bcb1345c23736899e166d7d38fb..50ce24e07b6d15a9cdf2319053d844cdbaaa8d47 100644
--- a/tests/lib/share/backend.php
+++ b/tests/lib/share/backend.php
@@ -38,19 +38,36 @@ class Test_Share_Backend implements OCP\Share_Backend {
 
 	public function generateTarget($itemSource, $shareWith, $exclude = null) {
 		// Always make target be test.txt to cause conflicts
-		$target = 'test.txt';
-		if (isset($exclude)) {
+
+		if (substr($itemSource, 0, strlen('test')) !== 'test') {
+			$target = "test.txt";
+		} else {
+			$target = $itemSource;
+		}
+
+
+		$shares = \OCP\Share::getItemsSharedWithUser('test', $shareWith);
+
+		$knownTargets = array();
+		foreach ($shares as $share) {
+			$knownTargets[] = $share['item_target'];
+		}
+
+
+		if (in_array($target, $knownTargets)) {
 			$pos = strrpos($target, '.');
 			$name = substr($target, 0, $pos);
 			$ext = substr($target, $pos);
 			$append = '';
 			$i = 1;
-			while (in_array($name.$append.$ext, $exclude)) {
+			while (in_array($name.$append.$ext, $knownTargets)) {
 				$append = $i;
 				$i++;
 			}
 			$target = $name.$append.$ext;
+
 		}
+
 		return $target;
 	}
 
diff --git a/tests/lib/share/share.php b/tests/lib/share/share.php
index 1fc2cecd1ed710e5d0c6b3abb43aa28de3aa65c4..3d99883f2de81961488fd5be493612429801722b 100644
--- a/tests/lib/share/share.php
+++ b/tests/lib/share/share.php
@@ -48,8 +48,8 @@ class Test_Share extends PHPUnit_Framework_TestCase {
 		OC_User::setUserId($this->user1);
 		OC_Group::clearBackends();
 		OC_Group::useBackend(new OC_Group_Dummy);
-		$this->group1 = uniqid('group_');
-		$this->group2 = uniqid('group_');
+		$this->group1 = uniqid('group1_');
+		$this->group2 = uniqid('group2_');
 		OC_Group::createGroup($this->group1);
 		OC_Group::createGroup($this->group2);
 		OC_Group::addToGroup($this->user1, $this->group1);