diff --git a/apps/files_sharing/lib/cache.php b/apps/files_sharing/lib/cache.php
index 67a0410ef76889db5467d15468e6c2f90bbca889..fa86d55730dfceb2a23694ff521a090db8823ec7 100644
--- a/apps/files_sharing/lib/cache.php
+++ b/apps/files_sharing/lib/cache.php
@@ -86,14 +86,13 @@ class Shared_Cache extends Cache {
 	public function get($file) {
 		if (is_string($file)) {
 			if ($cache = $this->getSourceCache($file)) {
-				$path = 'files' . $this->storage->getMountPoint();
-				$path .= ($file !== '') ? '/' . $file : '';
 				$data = $cache->get($this->files[$file]);
 				$data['displayname_owner'] = \OC_User::getDisplayName($this->storage->getSharedFrom());
-				$data['path'] = $path;
+				$data['path'] = '';
 				if ($file === '') {
 					$data['is_share_mount_point'] = true;
 				}
+				$data['uid_owner'] = $this->storage->getOwner($file);
 				return $data;
 			}
 		} else {
@@ -299,6 +298,11 @@ class Shared_Cache extends Cache {
 			$files = $this->getFolderContents($dir);
 			// no results?
 			if (!$files) {
+				// maybe it's a single shared file
+				$file = $this->get('');
+				if (($mimepart && $file['mimepart'] === $mimepart) || ($mimetype && $file['mimetype'] === $mimetype)) {
+					$result[] = $file;
+				}
 				continue;
 			}
 			foreach ($files as $file) {