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/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/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
