diff --git a/apps/updatenotification/lib/Settings/Admin.php b/apps/updatenotification/lib/Settings/Admin.php
index cae62ee0a9f2e16028db164d303385623f212e4c..54adf558224c91040b766c8437cb8424e6042bea 100644
--- a/apps/updatenotification/lib/Settings/Admin.php
+++ b/apps/updatenotification/lib/Settings/Admin.php
@@ -114,7 +114,7 @@ class Admin implements ISettings {
 		return new TemplateResponse('updatenotification', 'admin', $params, '');
 	}
 
-	protected function filterChanges(array $changes) {
+	protected function filterChanges(array $changes): array {
 		$filtered = [];
 		if(isset($changes['changelogURL'])) {
 			$filtered['changelogURL'] = $changes['changelogURL'];
@@ -127,7 +127,8 @@ class Admin implements ISettings {
 		do {
 			$lang = $iterator->current();
 			if(isset($changes['whatsNew'][$lang])) {
-				return $filtered['whatsNew'][$lang];
+				$filtered['whatsNew'] = $changes['whatsNew'][$lang];
+				return $filtered;
 			}
 			$iterator->next();
 		} while($lang !== 'en' && $iterator->valid());
diff --git a/apps/updatenotification/tests/Settings/AdminTest.php b/apps/updatenotification/tests/Settings/AdminTest.php
index d0d53226490c7187cdae611ccbb5c86cae764957..d1f44367a1cea59a531dff012b10efa64534bdf8 100644
--- a/apps/updatenotification/tests/Settings/AdminTest.php
+++ b/apps/updatenotification/tests/Settings/AdminTest.php
@@ -34,6 +34,7 @@ use OCP\IGroup;
 use OCP\IGroupManager;
 use OCP\IUserSession;
 use OCP\L10N\IFactory;
+use OCP\L10N\ILanguageIterator;
 use OCP\Util;
 use Test\TestCase;
 
@@ -153,4 +154,78 @@ class AdminTest extends TestCase {
 	public function testGetPriority() {
 		$this->assertSame(11, $this->admin->getPriority());
 	}
+
+	public function changesProvider() {
+		return [
+			[ #0, all info, en
+				[
+					'changelogURL' => 'https://go.to.changelog',
+					'whatsNew' => [
+						'en' => [
+							'regular' => ['content'],
+						],
+						'de' => [
+							'regular' => ['inhalt'],
+						]
+					],
+				],
+				'en',
+				[
+					'changelogURL' => 'https://go.to.changelog',
+					'whatsNew' => [
+						'regular' => ['content'],
+					],
+				]
+			],
+			[ #1, all info, de
+				[
+					'changelogURL' => 'https://go.to.changelog',
+					'whatsNew' => [
+						'en' => [
+							'regular' => ['content'],
+						],
+						'de' => [
+							'regular' => ['inhalt'],
+						]
+					],
+				],
+				'de',
+				[
+					'changelogURL' => 'https://go.to.changelog',
+					'whatsNew' => [
+						'regular' => ['inhalt'],
+					]
+				],
+			],
+			[ #2, just changelog
+				[ 'changelogURL' => 'https://go.to.changelog' ],
+				'en',
+				[ 'changelogURL' => 'https://go.to.changelog' ],
+			],
+			[ #3 nothing
+				[],
+				'ru',
+				[]
+			]
+		];
+	}
+
+	/**
+	 * @dataProvider changesProvider
+	 */
+	public function testFilterChanges($changes, $userLang, $expectation) {
+		$iterator = $this->createMock(ILanguageIterator::class);
+		$iterator->expects($this->any())
+			->method('current')
+			->willReturnOnConsecutiveCalls('es', $userLang, 'it', 'en');
+		$iterator->expects($this->any())
+			->method('valid')
+			->willReturn(true);
+
+		$this->l10nFactory->expects($this->atMost(1))
+			->method('getLanguageIterator')
+			->willReturn($iterator);
+		$result = $this->invokePrivate($this->admin, 'filterChanges', [$changes]);
+		$this->assertSame($expectation, $result);
+	}
 }
diff --git a/core/css/whatsnew.scss b/core/css/whatsnew.scss
index e13cdf86256ceb1efbf448b88a79673cf6dc6d31..99d99ded6914374b274dc7c759295dec5f5c9db8 100644
--- a/core/css/whatsnew.scss
+++ b/core/css/whatsnew.scss
@@ -9,6 +9,7 @@
   bottom: 35px !important;
   left: 15px !important;
   width: 270px;
+  z-index: 700;
 }
 
 .whatsNewPopover p {