diff --git a/lib/private/search/result/file.php b/lib/private/search/result/file.php
index be9c34b6e48852d65fc2b18705c66a38c64c142c..50b74e1ced2396ec6fb4131a8be03da9e0891922 100644
--- a/lib/private/search/result/file.php
+++ b/lib/private/search/result/file.php
@@ -25,6 +25,7 @@
 namespace OC\Search\Result;
 use OC\Files\Filesystem;
 use OCP\Files\FileInfo;
+use OCP\Files\Folder;
 
 /**
  * A found file
@@ -91,6 +92,11 @@ class File extends \OCP\Search\Result {
 		$this->mime = $data->getMimetype();
 	}
 
+	/**
+	 * @var Folder $userFolderCache
+	 */
+	static protected $userFolderCache = null;
+
 	/**
 	 * converts a path relative to the users files folder
 	 * eg /user/files/foo.txt -> /foo.txt
@@ -98,8 +104,11 @@ class File extends \OCP\Search\Result {
 	 * @return string relative path
 	 */
 	protected function getRelativePath ($path) {
-		$root = \OC::$server->getUserFolder();
-		return $root->getRelativePath($path);
+		if (!isset(self::$userFolderCache)) {
+			$user = \OC::$server->getUserSession()->getUser()->getUID();
+			self::$userFolderCache = \OC::$server->getUserFolder($user);
+		}
+		return self::$userFolderCache->getRelativePath($path);
 	}
 
 }