diff --git a/lib/private/Avatar/Avatar.php b/lib/private/Avatar/Avatar.php
index b2232f2ff00b930c8b328482549e8d13363689d7..5a91a09b4bf068ce1381f6d2fa1b18f0fea5ea60 100644
--- a/lib/private/Avatar/Avatar.php
+++ b/lib/private/Avatar/Avatar.php
@@ -89,13 +89,15 @@ abstract class Avatar implements IAvatar {
 	 *
 	 * @return string
 	 */
-	private function getAvatarLetter(): string {
+	private function getAvatarText(): string {
 		$displayName = $this->getDisplayName();
 		if (empty($displayName) === true) {
 			return '?';
-		} else {
-			return mb_strtoupper(mb_substr($displayName, 0, 1), 'UTF-8');
 		}
+		$firstTwoLetters = array_map(function ($namePart) {
+			return mb_strtoupper(mb_substr($namePart, 0, 1), 'UTF-8');
+		}, explode(' ', $displayName, 2));
+		return implode('', $firstTwoLetters);
 	}
 
 	/**
@@ -130,9 +132,9 @@ abstract class Avatar implements IAvatar {
 		$userDisplayName = $this->getDisplayName();
 		$bgRGB = $this->avatarBackgroundColor($userDisplayName);
 		$bgHEX = sprintf("%02x%02x%02x", $bgRGB->r, $bgRGB->g, $bgRGB->b);
-		$letter = $this->getAvatarLetter();
-		$toReplace = ['{size}', '{fill}', '{letter}'];
-		return str_replace($toReplace, [$size, $bgHEX, $letter], $this->svgTemplate);
+		$text = $this->getAvatarText();
+		$toReplace = ['{size}', '{fill}', '{text}'];
+		return str_replace($toReplace, [$size, $bgHEX, $text], $this->svgTemplate);
 	}
 
 	/**
@@ -168,7 +170,7 @@ abstract class Avatar implements IAvatar {
 	 * @return string
 	 */
 	protected function generateAvatar($userDisplayName, $size) {
-		$letter = $this->getAvatarLetter();
+		$text = $this->getAvatarText();
 		$backgroundColor = $this->avatarBackgroundColor($userDisplayName);
 
 		$im = imagecreatetruecolor($size, $size);
@@ -185,10 +187,10 @@ abstract class Avatar implements IAvatar {
 
 		$fontSize = $size * 0.4;
 		list($x, $y) = $this->imageTTFCenter(
-			$im, $letter, $font, (int)$fontSize
+			$im, $text, $font, (int)$fontSize
 		);
 
-		imagettftext($im, $fontSize, 0, $x, $y, $white, $font, $letter);
+		imagettftext($im, $fontSize, 0, $x, $y, $white, $font, $text);
 
 		ob_start();
 		imagepng($im);
diff --git a/tests/lib/Avatar/UserAvatarTest.php b/tests/lib/Avatar/UserAvatarTest.php
index ff6c63df2a8e8166417fc9fcfc145c2d114a19f4..43e325b09412c26609c100e03449967539fe1662 100644
--- a/tests/lib/Avatar/UserAvatarTest.php
+++ b/tests/lib/Avatar/UserAvatarTest.php
@@ -35,22 +35,20 @@ class UserAvatarTest extends \Test\TestCase {
 		parent::setUp();
 
 		$this->folder = $this->createMock(SimpleFolder::class);
-		/** @var \OCP\IL10N | \PHPUnit_Framework_MockObject_MockObject $l */
-		$l = $this->createMock(IL10N::class);
-		$l->method('t')->will($this->returnArgument(0));
-		$this->user = $this->createMock(User::class);
+		// abcdefghi is a convenient name that our algorithm convert to our nextcloud blue 0082c9
+		$this->user = $this->getUserWithDisplayName('abcdefghi');
 		$this->config = $this->createMock(IConfig::class);
 
-		$this->avatar = new \OC\Avatar\UserAvatar(
-			$this->folder,
-			$l,
-			$this->user,
-			$this->createMock(ILogger::class),
-			$this->config
-		);
+		$this->avatar = $this->getUserAvatar($this->user);
+	}
 
-		// abcdefghi is a convenient name that our algorithm convert to our nextcloud blue 0082c9
-		$this->user->method('getDisplayName')->willReturn('abcdefghi');
+	public function avatarTextData() {
+		return [
+			['', '?'],
+			['matchish', 'M'],
+			['Firstname Lastname', 'FL'],
+			['Firstname Lastname Rest', 'FL'],
+		];
 	}
 
 	public function testGetNoAvatar() {
@@ -239,6 +237,18 @@ class UserAvatarTest extends \Test\TestCase {
 		$this->assertEquals($avatar, $svg);
 	}
 
+
+	/**
+	 * @dataProvider avatarTextData
+	 */
+	public function testGetAvatarText($displayName, $expectedAvatarText) {
+		$user = $this->getUserWithDisplayName($displayName);
+		$avatar = $this->getUserAvatar($user);
+
+		$avatarText = $this->invokePrivate($avatar, 'getAvatarText');
+		$this->assertEquals($expectedAvatarText, $avatarText);
+	}
+
 	public function testHashToInt() {
 		$hashToInt = $this->invokePrivate($this->avatar, 'hashToInt', ['abcdef', 18]);
 		$this->assertTrue(gettype($hashToInt) === 'integer');
@@ -261,4 +271,26 @@ class UserAvatarTest extends \Test\TestCase {
 		$this->assertTrue(gettype($hashToInt) === 'integer');
 	}
 
+	private function getUserWithDisplayName($name)
+	{
+		$user = $this->createMock(User::class);
+		$user->method('getDisplayName')->willReturn($name);
+		return $user;
+	}
+
+	private function getUserAvatar($user)
+	{
+		/** @var \OCP\IL10N | \PHPUnit_Framework_MockObject_MockObject $l */
+		$l = $this->createMock(IL10N::class);
+		$l->method('t')->will($this->returnArgument(0));
+
+		return new \OC\Avatar\UserAvatar(
+			$this->folder,
+			$l,
+			$user,
+			$this->createMock(ILogger::class),
+			$this->config
+		);
+	}
+
 }