diff --git a/core/lib/Drupal/Core/Entity/Plugin/Validation/Constraint/ValidReferenceConstraintValidator.php b/core/lib/Drupal/Core/Entity/Plugin/Validation/Constraint/ValidReferenceConstraintValidator.php
index 40c7370..9886857 100644
--- a/core/lib/Drupal/Core/Entity/Plugin/Validation/Constraint/ValidReferenceConstraintValidator.php
+++ b/core/lib/Drupal/Core/Entity/Plugin/Validation/Constraint/ValidReferenceConstraintValidator.php
@@ -2,6 +2,7 @@
 
 namespace Drupal\Core\Entity\Plugin\Validation\Constraint;
 
+use Drupal\Core\Entity\ContentEntityInterface;
 use Drupal\Core\DependencyInjection\ContainerInjectionInterface;
 use Drupal\Core\Entity\EntityReferenceSelection\SelectionPluginManagerInterface;
 use Drupal\Core\Entity\EntityReferenceSelection\SelectionWithAutocreateInterface;
@@ -138,6 +139,16 @@ public function validate($value, Constraint $constraint) {
         }
       }
     }
+    elseif ($referenced_entity->isNew() && $referenced_entity instanceof ContentEntityInterface) {
+      $referenced_entity_type = $referenced_entity->getEntityType();
+      if ($referenced_entity_type->hasKey('label')) {
+        $label_name = $referenced_entity_type->getKey('label');
+        $violations = $referenced_entity->validate()->getByField($label_name);
+        foreach ($violations as $violation) {
+          $this->context->addViolation($violation->getMessageTemplate(), $violation->getMessageParameters());
+        }
+      }
+    }
   }
 
 }
diff --git a/core/modules/field/tests/src/Kernel/EntityReference/EntityReferenceItemTest.php b/core/modules/field/tests/src/Kernel/EntityReference/EntityReferenceItemTest.php
index 7380491..c644ffb 100644
--- a/core/modules/field/tests/src/Kernel/EntityReference/EntityReferenceItemTest.php
+++ b/core/modules/field/tests/src/Kernel/EntityReference/EntityReferenceItemTest.php
@@ -21,7 +21,7 @@
 use Drupal\taxonomy\Entity\Term;
 use Drupal\taxonomy\Entity\Vocabulary;
 use Drupal\user\Entity\User;
-
+use Drupal\user\Entity\User;
 
 /**
  * Tests the new entity API for the entity reference field type.
@@ -533,4 +533,43 @@ public function testAutocreateValidation() {
     $this->assertEqual(0, count($errors));
   }
 
+  /**
+   * Tests if an auto-created reference entity is validated when validating the
+   * host.
+   */
+  public function testValidateAutoCreatedEntityReference() {
+    $checks = [
+      'The username cannot begin with a space.',
+      'The username cannot end with a space.',
+      'The username cannot contain multiple spaces in a row.',
+      'The username %name is too long: it must be %max characters or less.',
+    ];
+
+    $this->createEntityReferenceField('entity_test', 'entity_test', 'field_test_author', 'Test user entity reference', 'user');
+
+    $account = User::create([
+      // We create an user account with a wrong username.
+      'name' => ' wrong  username01234567890123456789012345678901234567890123456789 ',
+      'mail' => $this->randomMachineName() . '@example.com',
+    ]);
+
+    /** @var \Drupal\Core\Entity\EntityStorageInterface $storage */
+    $storage = $this->container->get('entity.manager')->getStorage('entity_test');
+
+    // Create the host entity and attach the term.
+    /** @var \Drupal\Core\Entity\ContentEntityInterface $entity */
+    $entity = $storage->create();
+    $entity->name->value = $this->randomMachineName();
+    $entity->field_test_author->entity = $account;
+
+    // Validate the host entity.
+    $violations = $entity->validate();
+
+    $this->assertEqual($violations->count(), 4);
+
+    foreach ($violations as $delta => $violation) {
+      $this->assertEqual($violation->getMessageTemplate(), $checks[$delta]);
+    }
+  }
+
 }
