diff --git a/lib/private/avatar.php b/lib/private/avatar.php
index baaccaa86e6b1f59a86c99e4c015c804bee1ffd7..90a8b8c26f907329e4784cd675984e483f479c70 100644
--- a/lib/private/avatar.php
+++ b/lib/private/avatar.php
@@ -67,8 +67,13 @@ class Avatar implements \OCP\IAvatar {
 		}
 
 		$avatar = new OC_Image();
-		$avatar->loadFromData($this->view->file_get_contents('avatar.'.$ext));
-		$avatar->resize($size);
+		if ($this->view->file_exists('avatar.' . $size . '.' . $ext)) {
+			$avatar->loadFromData($this->view->file_get_contents('avatar.' . $size . '.' . $ext));
+		} else {
+			$avatar->loadFromData($this->view->file_get_contents('avatar.' . $ext));
+			$avatar->resize($size);
+			$this->view->file_put_contents('avatar.' . $size . '.' . $ext, $avatar->data());
+		}
 		return $avatar;
 	}