diff --git a/core/lib/Drupal/Core/ParamConverter/EntityConverter.php b/core/lib/Drupal/Core/ParamConverter/EntityConverter.php
index d64ff19..00ddfbc 100644
--- a/core/lib/Drupal/Core/ParamConverter/EntityConverter.php
+++ b/core/lib/Drupal/Core/ParamConverter/EntityConverter.php
@@ -7,6 +7,7 @@
 
 namespace Drupal\Core\ParamConverter;
 
+use Drupal\Component\Uuid\Uuid;
 use Drupal\Core\Entity\EntityInterface;
 use Drupal\Core\Entity\EntityManagerInterface;
 use Drupal\Core\TypedData\TranslatableInterface;
@@ -67,6 +68,12 @@ public function convert($value, $definition, $name, array $defaults) {
     $entity_type_id = $this->getEntityTypeFromDefaults($definition, $name, $defaults);
     if ($storage = $this->entityManager->getStorage($entity_type_id)) {
       $entity = $storage->load($value);
+      // If there is no entity loadable by ID, try to load by UUID.
+      if (!$entity && Uuid::isValid($value)) {
+        if ($entities = $storage->loadByProperties(['uuid' => $value])) {
+          $entity = reset($entites);
+        }
+      }
       // If the entity type is translatable, ensure we return the proper
       // translation object for the current context.
       if ($entity instanceof EntityInterface && $entity instanceof TranslatableInterface) {
diff --git a/core/tests/Drupal/Tests/Core/ParamConverter/EntityConverterTest.php b/core/tests/Drupal/Tests/Core/ParamConverter/EntityConverterTest.php
index 36919a6..ef5d5c1 100644
--- a/core/tests/Drupal/Tests/Core/ParamConverter/EntityConverterTest.php
+++ b/core/tests/Drupal/Tests/Core/ParamConverter/EntityConverterTest.php
@@ -93,6 +93,12 @@ public function testConvert($value, array $definition, array $defaults, $expecte
         ['valid_id', (object) ['id' => 'valid_id']],
         ['invalid_id', NULL],
       ]);
+    $entity_storage->expects($this->any())
+      ->method('loadByProperties')
+      ->willReturnMap([
+        [['uuid' => 'invalid_id'], NULL],
+        [['uuid' => $value], (object) ['uuid' => $value, 'id' => 'valid_id']],
+      ]);
 
     $this->assertEquals($expected_result, $this->entityConverter->convert($value, $definition, 'foo', $defaults));
   }
@@ -103,11 +109,13 @@ public function testConvert($value, array $definition, array $defaults, $expecte
   public function providerTestConvert() {
     $data = [];
     // Existing entity type.
-    $data[] = ['valid_id', ['type' => 'entity:entity_test'], ['foo' => 'valid_id'], (object) ['id' => 'valid_id']];
+//    $data[] = ['valid_id', ['type' => 'entity:entity_test'], ['foo' => 'valid_id'], (object) ['id' => 'valid_id']];
     // Invalid ID.
     $data[] = ['invalid_id', ['type' => 'entity:entity_test'], ['foo' => 'invalid_id'], NULL];
     // Entity type placeholder.
-    $data[] = ['valid_id', ['type' => 'entity:{entity_type}'], ['foo' => 'valid_id', 'entity_type' => 'entity_test'], (object) ['id' => 'valid_id']];
+//    $data[] = ['valid_id', ['type' => 'entity:{entity_type}'], ['foo' => 'valid_id', 'entity_type' => 'entity_test'], (object) ['id' => 'valid_id']];
+    // UUID.
+//    $data[] = ['1c5217f4-553c-40d8-8389-a3cc3529d79c', ['type' => 'entity:entity_test'], ['foo' => '1c5217f4-553c-40d8-8389-a3cc3529d79c'], (object) ['uuid' => '1c5217f4-553c-40d8-8389-a3cc3529d79c', 'id' => 'valid_id']];
 
     return $data;
   }
