diff --git a/lib/private/user/user.php b/lib/private/user/user.php
index ef5364cbf7b50d3c0fdbd8332194a134ae5d8e21..710f9061b53903a9aedfff53c3ebc5ea481bf8c6 100644
--- a/lib/private/user/user.php
+++ b/lib/private/user/user.php
@@ -55,11 +55,6 @@ class User {
 	 */
 	public function __construct($uid, $backend, $emitter = null, $config = null) {
 		$this->uid = $uid;
-		if ($backend and $backend->implementsActions(OC_USER_BACKEND_GET_DISPLAYNAME)) {
-			$this->displayName = $backend->getDisplayName($uid);
-		} else {
-			$this->displayName = $uid;
-		}
 		$this->backend = $backend;
 		$this->emitter = $emitter;
 		$this->config = $config;
@@ -86,6 +81,13 @@ class User {
 	 * @return string
 	 */
 	public function getDisplayName() {
+		if (!isset($this->displayName)) {
+			if ($this->backend and $this->backend->implementsActions(OC_USER_BACKEND_GET_DISPLAYNAME)) {
+				$this->displayName = $this->backend->getDisplayName($this->uid);
+			} else {
+				$this->displayName = $this->uid;
+			}
+		}
 		return $this->displayName;
 	}