diff --git a/test/integration/localization.test.js b/test/integration/localization.test.js
index 4fb1e8d59f085b93a8fe9d457e720dc5ff7f96e4..e7cc64e90b6127ac4ed993ca4450c54cb1b886b9 100644
--- a/test/integration/localization.test.js
+++ b/test/integration/localization.test.js
@@ -24,7 +24,7 @@ describe('Localization', () => {
         await driver.quit();
     });
 
-    test('Localization', async () => {
+    test('Switching languages', async () => {
         await loadUri(uri);
         await clickXpath('//button[@title="Try It"]');
 
@@ -52,4 +52,15 @@ describe('Localization', () => {
         const logs = await getLogs();
         await expect(logs).toEqual([]);
     });
+
+    // Regression test for #4476, blocks in wrong language when loaded with locale
+    test('Loading with locale shows correct blocks', async () => {
+        await loadUri(`${uri}?locale=de`);
+        await clickXpath('//button[@title="Ausprobieren!"]'); // "Try It"
+        await clickText('Fühlen'); // Sensing category in German
+        await new Promise(resolve => setTimeout(resolve, 1000)); // wait for blocks to scroll
+        await clickText('Antwort'); // Find the "answer" block in German
+        const logs = await getLogs();
+        await expect(logs).toEqual([]);
+    });
 });