diff --git a/apps/files_sharing/lib/cache.php b/apps/files_sharing/lib/cache.php
index 67a0410ef76889db5467d15468e6c2f90bbca889..8c680e9c9774516202a75f78c5d619923cf4793b 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'] = $file;
 				if ($file === '') {
 					$data['is_share_mount_point'] = true;
 				}
+				$data['uid_owner'] = $this->storage->getOwner($file);
 				return $data;
 			}
 		} else {
@@ -101,7 +100,6 @@ class Shared_Cache extends Cache {
 			// cache information for the source item
 			if (!is_int($file) || $file === 0) {
 				$file = $this->storage->getSourceId();
-				$mountPoint = $this->storage->getMountPoint();
 			}
 			$query = \OC_DB::prepare(
 				'SELECT `fileid`, `storage`, `path`, `parent`, `name`, `mimetype`, `mimepart`,'
@@ -124,8 +122,8 @@ class Shared_Cache extends Cache {
 			} else {
 				$data['size'] = (int)$data['size'];
 			}
-			if (isset($mountPoint)) {
-				$data['path'] = 'files/' . $mountPoint;
+			if (!is_int($file) || $file === 0) {
+				$data['path'] = '';
 				$data['is_share_mount_point'] = true;
 			}
 			return $data;
@@ -299,6 +297,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) {
diff --git a/lib/private/files/view.php b/lib/private/files/view.php
index 93d2c15c50b9bea68308dd90e5c8984d874a5886..31ec8cfacff57d734977b69977e56135923544bb 100644
--- a/lib/private/files/view.php
+++ b/lib/private/files/view.php
@@ -996,6 +996,7 @@ class View {
 									break;
 								}
 							}
+							$rootEntry['path'] = substr($path . '/' . $rootEntry['name'], strlen($user) + 2); // full path without /$user/
 							$files[] = new FileInfo($path . '/' . $rootEntry['name'], $subStorage, '', $rootEntry);
 						}
 					}