diff --git a/core/modules/comment/lib/Drupal/comment/Tests/CommentValidationTest.php b/core/modules/comment/lib/Drupal/comment/Tests/CommentValidationTest.php
index 56f8a54..ba7aae4 100644
--- a/core/modules/comment/lib/Drupal/comment/Tests/CommentValidationTest.php
+++ b/core/modules/comment/lib/Drupal/comment/Tests/CommentValidationTest.php
@@ -51,6 +51,13 @@ public function testValidation() {
       'name' => 'comment',
       'type' => 'comment',
     ))->save();
+
+    // Create a page node type.
+    $this->entityManager->getStorageController('node_type')->create(array(
+      'type' => 'page',
+      'name' => 'page',
+    ))->save();
+
     // Add comment field instance to page content.
     $this->entityManager->getStorageController('field_instance_config')->create(array(
       'field_name' => 'comment',
diff --git a/core/modules/contact/lib/Drupal/contact/Tests/Views/ContactFieldsTest.php b/core/modules/contact/lib/Drupal/contact/Tests/Views/ContactFieldsTest.php
index 368f1ad..128d5ec 100644
--- a/core/modules/contact/lib/Drupal/contact/Tests/Views/ContactFieldsTest.php
+++ b/core/modules/contact/lib/Drupal/contact/Tests/Views/ContactFieldsTest.php
@@ -47,6 +47,11 @@ protected function setUp() {
     ));
     $this->field->save();
 
+    entity_create('contact_category', array(
+      'id' => 'contact_message',
+      'label' => 'Test contact category',
+    ))->save();
+
     entity_create('field_instance_config', array(
       'field_name' => $this->field->name,
       'entity_type' => 'contact_message',
diff --git a/core/modules/field/lib/Drupal/field/Entity/FieldInstanceConfig.php b/core/modules/field/lib/Drupal/field/Entity/FieldInstanceConfig.php
index 2b8e87f..0fd6f05 100644
--- a/core/modules/field/lib/Drupal/field/Entity/FieldInstanceConfig.php
+++ b/core/modules/field/lib/Drupal/field/Entity/FieldInstanceConfig.php
@@ -368,6 +368,13 @@ public function calculateDependencies() {
     parent::calculateDependencies();
     // Manage dependencies.
     $this->addDependency('entity', $this->field->getConfigDependencyName());
+    $bundle_entity_type_id = \Drupal::entityManager()->getDefinition($this->entity_type)->getBundleEntityType();
+    if ($bundle_entity_type_id != 'bundle') {
+      // If the target entity type uses entities to manage its bundles then
+      // depend on the bundle entity.
+      $bundle_entity = \Drupal::entityManager()->getStorageController($bundle_entity_type_id)->load($this->bundle);
+      $this->addDependency('entity', $bundle_entity->getConfigDependencyName());
+    }
     return $this->dependencies;
   }
 
diff --git a/core/modules/field/lib/Drupal/field/Tests/Views/FieldTestBase.php b/core/modules/field/lib/Drupal/field/Tests/Views/FieldTestBase.php
index c65e95b..eefb0d3 100644
--- a/core/modules/field/lib/Drupal/field/Tests/Views/FieldTestBase.php
+++ b/core/modules/field/lib/Drupal/field/Tests/Views/FieldTestBase.php
@@ -52,6 +52,12 @@
   protected function setUp() {
     parent::setUp();
 
+    // Ensure the page node type exists.
+    entity_create('node_type', array(
+      'type' => 'page',
+      'name' => 'page',
+    ))->save();
+
     ViewTestData::createTestViews(get_class($this), array('field_test_views'));
   }
 
diff --git a/core/modules/field/tests/Drupal/field/Tests/FieldInstanceConfigEntityUnitTest.php b/core/modules/field/tests/Drupal/field/Tests/FieldInstanceConfigEntityUnitTest.php
index 9bde1ec..4405c03 100644
--- a/core/modules/field/tests/Drupal/field/Tests/FieldInstanceConfigEntityUnitTest.php
+++ b/core/modules/field/tests/Drupal/field/Tests/FieldInstanceConfigEntityUnitTest.php
@@ -71,16 +71,7 @@ public static function getInfo() {
   public function setUp() {
     $this->entityTypeId = $this->randomName();
 
-    $this->entityType = $this->getMock('\Drupal\Core\Entity\EntityTypeInterface');
-    $this->entityType->expects($this->any())
-      ->method('getProvider')
-      ->will($this->returnValue('entity'));
-
     $this->entityManager = $this->getMock('\Drupal\Core\Entity\EntityManagerInterface');
-    $this->entityManager->expects($this->any())
-      ->method('getDefinition')
-      ->with($this->entityTypeId)
-      ->will($this->returnValue($this->entityType));
 
     $this->uuid = $this->getMock('\Drupal\Component\Uuid\UuidInterface');
 
@@ -111,10 +102,40 @@ public function testCalculateDependencies() {
       ->method('getField')
       ->with('test_entity_type', 'test_field')
       ->will($this->returnValue($field));
-    $values = array('field_name' => 'test_field', 'entity_type' => 'test_entity_type', $this->entityTypeId, 'bundle' => 'test_bundle');
+
+    // Mock the interfaces necessary to create a dependency on a bundle entity.
+    $bundle_entity = $this->getMock('Drupal\Core\Config\Entity\ConfigEntityInterface');
+    $bundle_entity->expects($this->any())
+      ->method('getConfigDependencyName')
+      ->will($this->returnValue('test.test_entity_type.id'));
+
+    $storage_controller = $this->getMock('\Drupal\Core\Config\Entity\ConfigStorageControllerInterface');
+    $storage_controller
+      ->expects($this->any())
+      ->method('load')
+      ->with('test_bundle')
+      ->will($this->returnValue($bundle_entity));
+
+    $this->entityManager->expects($this->any())
+      ->method('getStorageController')
+      ->with('bundle_entity_type')
+      ->will($this->returnValue($storage_controller));
+
+    $target_entity_type = $this->getMock('\Drupal\Core\Entity\EntityTypeInterface');
+    $target_entity_type->expects($this->any())
+      ->method('getBundleEntityType')
+      ->will($this->returnValue('bundle_entity_type'));
+
+    $this->entityManager->expects($this->any())
+      ->method('getDefinition')
+      ->with('test_entity_type')
+      ->will($this->returnValue($target_entity_type));
+
+    $values = array('field_name' => 'test_field', 'entity_type' => 'test_entity_type', 'bundle' => 'test_bundle');
     $entity = new FieldInstanceConfig($values, $this->entityTypeId);
     $dependencies = $entity->calculateDependencies();
     $this->assertContains('field.field.test_entity_type.test_field', $dependencies['entity']);
+    $this->assertContains('test.test_entity_type.id', $dependencies['entity']);
   }
 
 }
diff --git a/core/modules/forum/config/field.instance.taxonomy_term.forums.forum_container.yml b/core/modules/forum/config/field.instance.taxonomy_term.forums.forum_container.yml
index e91a93b..ed16957 100644
--- a/core/modules/forum/config/field.instance.taxonomy_term.forums.forum_container.yml
+++ b/core/modules/forum/config/field.instance.taxonomy_term.forums.forum_container.yml
@@ -16,3 +16,4 @@ field_type: list_boolean
 dependencies:
   entity:
     - field.field.forum.forum_container
+    - taxonomy.vocabulary.forums
diff --git a/core/modules/node/lib/Drupal/node/Tests/NodeAccessLanguageAwareCombinationTest.php b/core/modules/node/lib/Drupal/node/Tests/NodeAccessLanguageAwareCombinationTest.php
index b14281e..4ea9fe8 100644
--- a/core/modules/node/lib/Drupal/node/Tests/NodeAccessLanguageAwareCombinationTest.php
+++ b/core/modules/node/lib/Drupal/node/Tests/NodeAccessLanguageAwareCombinationTest.php
@@ -53,6 +53,29 @@ public static function getInfo() {
   public function setUp() {
     parent::setUp();
 
+    // Create the 'private' field, which allows the node to be marked as private
+    // (restricted access) in a given translation.
+    $field_private = entity_create('field_config', array(
+      'name' => 'field_private',
+      'entity_type' => 'node',
+      'type' => 'list_boolean',
+      'cardinality' => 1,
+      'translatable'  => TRUE,
+      'settings' => array(
+        'allowed_values' => array(0 => 'Not private', 1 => 'Private'),
+      ),
+    ));
+    $field_private->save();
+
+    entity_create('field_instance_config', array(
+      'field_name' => $field_private->name,
+      'entity_type' => 'node',
+      'bundle' => 'page',
+      'widget' => array(
+        'type' => 'options_buttons',
+      ),
+    ))->save();
+
     // After enabling a node access module, the access table has to be rebuild.
     node_access_rebuild();
 
diff --git a/core/modules/node/lib/Drupal/node/Tests/NodeAccessLanguageAwareTest.php b/core/modules/node/lib/Drupal/node/Tests/NodeAccessLanguageAwareTest.php
index 48824ab..fc76429 100644
--- a/core/modules/node/lib/Drupal/node/Tests/NodeAccessLanguageAwareTest.php
+++ b/core/modules/node/lib/Drupal/node/Tests/NodeAccessLanguageAwareTest.php
@@ -46,6 +46,29 @@ public static function getInfo() {
   public function setUp() {
     parent::setUp();
 
+    // Create the 'private' field, which allows the node to be marked as private
+    // (restricted access) in a given translation.
+    $field_private = entity_create('field_config', array(
+      'name' => 'field_private',
+      'entity_type' => 'node',
+      'type' => 'list_boolean',
+      'cardinality' => 1,
+      'translatable'  => TRUE,
+      'settings' => array(
+        'allowed_values' => array(0 => 'Not private', 1 => 'Private'),
+      ),
+    ));
+    $field_private->save();
+
+    entity_create('field_instance_config', array(
+      'field_name' => $field_private->name,
+      'entity_type' => 'node',
+      'bundle' => 'page',
+      'widget' => array(
+        'type' => 'options_buttons',
+      ),
+    ))->save();
+
     // After enabling a node access module, the access table has to be rebuild.
     node_access_rebuild();
 
diff --git a/core/profiles/standard/config/field.instance.node.article.field_image.yml b/core/profiles/standard/config/field.instance.node.article.field_image.yml
index 11cbbd4..05702fd 100644
--- a/core/profiles/standard/config/field.instance.node.article.field_image.yml
+++ b/core/profiles/standard/config/field.instance.node.article.field_image.yml
@@ -29,3 +29,4 @@ field_type: image
 dependencies:
   entity:
     - field.field.node.field_image
+    - node.type.article
diff --git a/core/profiles/standard/config/field.instance.node.article.field_tags.yml b/core/profiles/standard/config/field.instance.node.article.field_tags.yml
index ed175f7..18b58c2 100644
--- a/core/profiles/standard/config/field.instance.node.article.field_tags.yml
+++ b/core/profiles/standard/config/field.instance.node.article.field_tags.yml
@@ -13,3 +13,4 @@ langcode: und
 dependencies:
   entity:
     - field.field.node.field_tags
+    - node.type.article
