diff --git a/apps/files_sharing/lib/share/file.php b/apps/files_sharing/lib/share/file.php
index 1086e21d79f000f798b8b74a234d887a53aa4edf..dacdb9308be7b72298aa3b953f8cc5d4ec52ebd2 100644
--- a/apps/files_sharing/lib/share/file.php
+++ b/apps/files_sharing/lib/share/file.php
@@ -57,7 +57,7 @@ class OC_Share_Backend_File implements OCP\Share_Backend_File_Dependent {
 	 * create unique target
 	 * @param string $filePath
 	 * @param string $shareWith
-	 * @param string $exclude
+	 * @param array $exclude (optional)
 	 * @return string
 	 */
 	public function generateTarget($filePath, $shareWith, $exclude = null) {
@@ -83,7 +83,9 @@ class OC_Share_Backend_File implements OCP\Share_Backend_File_Dependent {
 			}
 		}
 
-		return \OCA\Files_Sharing\Helper::generateUniqueTarget($target, $exclude, $view);
+		$excludeList = (is_array($exclude)) ? $exclude : array();
+
+		return \OCA\Files_Sharing\Helper::generateUniqueTarget($target, $excludeList, $view);
 	}
 
 	public function formatItems($items, $format, $parameters = null) {
diff --git a/apps/files_sharing/tests/share.php b/apps/files_sharing/tests/share.php
index 80199505d89752cad4b5e8a81e43aab4c2b04d05..fe80cfca781db28a32a6665614342e4b8c5ae409 100644
--- a/apps/files_sharing/tests/share.php
+++ b/apps/files_sharing/tests/share.php
@@ -72,8 +72,6 @@ class Test_Files_Sharing extends Test_Files_Sharing_Base {
 
 		$fileinfo = $this->view->getFileInfo($this->filename);
 
-		$pathinfo = pathinfo($this->filename);
-
 		$result = \OCP\Share::shareItem('file', $fileinfo['fileid'], \OCP\Share::SHARE_TYPE_USER,
 				\Test_Files_Sharing::TEST_FILES_SHARING_API_USER2, 31);
 
diff --git a/lib/private/share/helper.php b/lib/private/share/helper.php
index 90dd12e9842d9c315199c0035e051df242371527..2418535c9d50dbcd2f72a7f5c5962a1f56682b78 100644
--- a/lib/private/share/helper.php
+++ b/lib/private/share/helper.php
@@ -36,6 +36,7 @@ class Helper extends \OC\Share\Constants {
 	 * @return string Item target
 	 */
 	public static function generateTarget($itemType, $itemSource, $shareType, $shareWith, $uidOwner, $suggestedTarget = null, $groupParent = null) {
+		// FIXME: $uidOwner and $groupParent seems to be unused
 		$backend = \OC\Share\Share::getBackend($itemType);
 		if ($shareType == self::SHARE_TYPE_LINK) {
 			if (isset($suggestedTarget)) {
@@ -53,9 +54,6 @@ class Helper extends \OC\Share\Constants {
 			if ($shareType == self::SHARE_TYPE_USER) {
 				// Share with is a user, so set share type to user and groups
 				$shareType = self::$shareTypeUserAndGroups;
-				$userAndGroups = array_merge(array($shareWith), \OC_Group::getUserGroups($shareWith));
-			} else {
-				$userAndGroups = false;
 			}
 			$exclude = array();
 
diff --git a/lib/private/share/hooks.php b/lib/private/share/hooks.php
index 2be7dc85e3cc3164b782cb7c3acd6a29bfd34ef8..66b197b921baca933656976205fdaa83acf120bc 100644
--- a/lib/private/share/hooks.php
+++ b/lib/private/share/hooks.php
@@ -65,7 +65,7 @@ class Hooks extends \OC\Share\Constants {
 
 				// do we also need a file target
 				if ($item['item_type'] === 'file' || $item['item_type'] === 'folder') {
-					$fileTarget = Helper::generateTarget('file', $row['file_target'], self::SHARE_TYPE_USER, $arguments['uid'],
+					$fileTarget = Helper::generateTarget('file', $item['file_target'], self::SHARE_TYPE_USER, $arguments['uid'],
 							$item['owner'], null, $item['parent']);
 				} else {
 					$fileTarget = null;
diff --git a/lib/private/share/share.php b/lib/private/share/share.php
index b34b134ee84f77f2285d2def49ea5fe2eb3ca00f..d861f0510e4f97cebb120776349c8c46b21ee55b 100644
--- a/lib/private/share/share.php
+++ b/lib/private/share/share.php
@@ -295,7 +295,7 @@ class Share extends \OC\Share\Constants {
 		$shares = array();
 
 		$column = ($itemType === 'file' || $itemType === 'folder') ? 'file_source' : 'item_source';
-		
+
 		$where = ' `' . $column . '` = ? AND `item_type` = ? ';
 		$arguments = array($itemSource, $itemType);
 		// for link shares $user === null
@@ -706,7 +706,7 @@ class Share extends \OC\Share\Constants {
 			// if there is more then one result we don't have to delete the children
 			// but update their parent. For group shares the new parent should always be
 			// the original group share and not the db entry with the unique name
-			} else if ((int)$item['share_type'] === \OCP\Share::$shareTypeGroupUserUnique) {
+			} else if ((int)$item['share_type'] === self::$shareTypeGroupUserUnique) {
 				$newParent = $item['parent'];
 			} else {
 				$newParent = $item['id'];
@@ -1614,6 +1614,7 @@ class Share extends \OC\Share\Constants {
 		$permissions, $parentFolder = null, $token = null, $itemSourceName = null, \DateTime $expirationDate = null) {
 
 		$queriesToExecute = array();
+		$suggestedItemTarget = null;
 
 		$result = self::checkReshare($itemType, $itemSource, $shareType, $shareWith, $uidOwner, $permissions, $itemSourceName, $expirationDate);
 		if(!empty($result)) {