diff --git a/typo3/sysext/core/Classes/Utility/ArrayUtility.php b/typo3/sysext/core/Classes/Utility/ArrayUtility.php
index 79254a9f5071397f0091b955ab54a0a9004fa3e3..b9efd5e07cb66f39993cceec20b2bba2c0559f73 100644
--- a/typo3/sysext/core/Classes/Utility/ArrayUtility.php
+++ b/typo3/sysext/core/Classes/Utility/ArrayUtility.php
@@ -571,7 +571,7 @@ class ArrayUtility
         $level++;
         $allKeysAreNumeric = true;
         foreach ($array as $key => $_) {
-            if (is_numeric($key) === false) {
+            if (is_numeric($key) === false || (is_string($key) && StringUtility::endsWith($key, '.'))) {
                 $allKeysAreNumeric = false;
                 break;
             }
diff --git a/typo3/sysext/core/Tests/Unit/Utility/ArrayUtilityTest.php b/typo3/sysext/core/Tests/Unit/Utility/ArrayUtilityTest.php
index 767d4e5d9687efb5a24b3fb890b2a83b0337f2f7..2c2771e84e13e679e6dfcd72c479d0204edcdc1e 100644
--- a/typo3/sysext/core/Tests/Unit/Utility/ArrayUtilityTest.php
+++ b/typo3/sysext/core/Tests/Unit/Utility/ArrayUtilityTest.php
@@ -1516,6 +1516,10 @@ class ArrayUtilityTest extends \TYPO3\TestingFramework\Core\Unit\UnitTestCase
                 [0 => 'Zero', '1' => 'One', 'Two' => 'Two'],
                 [0 => 'Zero', '1' => 'One', 'Two' => 'Two'],
             ],
+            'returns unchanged if keys end with a dot' => [
+                ['2.' => 'Two', '1.' => 'One', '0.' => 'Zero'],
+                ['2.' => 'Two', '1.' => 'One', '0.' => 'Zero'],
+            ],
             'return self with nested numerically keyed array' => [
                 [
                     'One',