diff --git a/lib/public/share.php b/lib/public/share.php
index e0488b8faf64e070c3bf504a9f2568087c17b45a..59dbad035aaf5c3360cd35873a61be93f6b7ab6d 100644
--- a/lib/public/share.php
+++ b/lib/public/share.php
@@ -1015,8 +1015,14 @@ class Share {
 								continue;
 							}
 						}
-						if ($item['uid_owner'] == $uidOwner && $item[$columnSource] == $itemSource) {
-							return $target;
+						if ($item['uid_owner'] == $uidOwner) {
+							if ($itemType == 'file' || $itemType == 'folder') {
+								if ($item['file_source'] == \OC_FileCache::getId($itemSource)) {
+									return $target;
+								}
+							} else if ($item['item_source'] == $itemSource) {
+								return $target;
+							}
 						}
 					}
 					if (!isset($exclude)) {