diff --git a/core/modules/forum/forum.module b/core/modules/forum/forum.module
index 42b21b5..f5f6416 100644
--- a/core/modules/forum/forum.module
+++ b/core/modules/forum/forum.module
@@ -300,7 +300,7 @@ function forum_node_validate(Node $node, $form) {
         }
         $used = db_query_range('SELECT 1 FROM {taxonomy_term_data} WHERE tid = :tid AND vid = :vid', 0, 1, array(
           ':tid' => $term->tid,
-          ':vid' => $term->vid,
+          ':vid' => $term->bundle(),
         ))->fetchField();
         if ($used && in_array($term->tid, $containers)) {
           form_set_error('taxonomy_forums', t('The item %forum is a forum container, not a forum. Select one of the forums below instead.', array('%forum' => $term->label())));
@@ -776,7 +776,7 @@ function forum_forum_load($tid = NULL) {
   // Load and validate the parent term.
   if ($tid) {
     $forum_term = taxonomy_term_load($tid);
-    if (!$forum_term || ($forum_term->vid != $vid)) {
+    if (!$forum_term || ($forum_term->bundle() != $vid)) {
       return $cache[$tid] = FALSE;
     }
   }
diff --git a/core/modules/system/lib/Drupal/system/Tests/Entity/EntityCrudHookTest.php b/core/modules/system/lib/Drupal/system/Tests/Entity/EntityCrudHookTest.php
index e045d20..91c292c 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Entity/EntityCrudHookTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Entity/EntityCrudHookTest.php
@@ -262,7 +262,7 @@ public function testTaxonomyTermHooks() {
     taxonomy_vocabulary_save($vocabulary);
 
     $term = entity_create('taxonomy_term', array(
-      'vid' => $vocabulary->vid,
+      'vid' => $vocabulary->id(),
       'name' => 'Test term',
       'langcode' => LANGUAGE_NOT_SPECIFIED,
       'description' => NULL,
@@ -330,7 +330,7 @@ public function testTaxonomyVocabularyHooks() {
     ));
 
     $_SESSION['entity_crud_hook_test'] = array();
-    $vocabulary = taxonomy_vocabulary_load($vocabulary->vid);
+    $vocabulary = taxonomy_vocabulary_load($vocabulary->id());
 
     $this->assertHookMessageOrder(array(
       'entity_crud_hook_test_entity_load called for type taxonomy_vocabulary',
@@ -349,7 +349,7 @@ public function testTaxonomyVocabularyHooks() {
     ));
 
     $_SESSION['entity_crud_hook_test'] = array();
-    taxonomy_vocabulary_delete($vocabulary->vid);
+    taxonomy_vocabulary_delete($vocabulary->id());
 
     $this->assertHookMessageOrder(array(
       'entity_crud_hook_test_taxonomy_vocabulary_predelete called',
diff --git a/core/modules/system/system.api.php b/core/modules/system/system.api.php
index e9c0860..b00db12 100644
--- a/core/modules/system/system.api.php
+++ b/core/modules/system/system.api.php
@@ -2077,14 +2077,14 @@ function hook_mail($key, &$message, $params) {
   );
   if ($context['hook'] == 'taxonomy') {
     $entity = $params['entity'];
-    $vocabulary = taxonomy_vocabulary_load($entity->vid);
+    $vocabulary = taxonomy_vocabulary_load($entity->id());
     $variables += array(
       '%term_name' => $entity->name,
       '%term_description' => $entity->description,
       '%term_id' => $entity->tid,
       '%vocabulary_name' => $vocabulary->name,
       '%vocabulary_description' => $vocabulary->description,
-      '%vocabulary_id' => $vocabulary->vid,
+      '%vocabulary_id' => $vocabulary->id(),
     );
   }
 
diff --git a/core/modules/taxonomy/lib/Drupal/taxonomy/Plugin/views/argument_validator/Term.php b/core/modules/taxonomy/lib/Drupal/taxonomy/Plugin/views/argument_validator/Term.php
index 78c04a9..51d697d 100644
--- a/core/modules/taxonomy/lib/Drupal/taxonomy/Plugin/views/argument_validator/Term.php
+++ b/core/modules/taxonomy/lib/Drupal/taxonomy/Plugin/views/argument_validator/Term.php
@@ -95,7 +95,7 @@ function validate_argument($argument) {
           return FALSE;
         }
         $this->argument->validated_title = check_plain($term->name);
-        return empty($vocabularies) || !empty($vocabularies[$term->vid]);
+        return empty($vocabularies) || !empty($vocabularies[$term->bundle()]);
 
       case 'tids':
         // An empty argument is not a term so doesn't pass.
@@ -131,7 +131,7 @@ function validate_argument($argument) {
         if (count($test)) {
           $result = entity_load_multiple('taxonomy_term', $test);
           foreach ($result as $term) {
-            if ($vocabularies && empty($vocabularies[$term->vid])) {
+            if ($vocabularies && empty($vocabularies[$term->bundle()])) {
               $validated_cache[$term->id()] = FALSE;
               return FALSE;
             }
@@ -156,7 +156,7 @@ function validate_argument($argument) {
           $term->name = str_replace(' ', '-', $term->name);
         }
 
-        if ($term && (empty($vocabularies) || !empty($vocabularies[$term->vid]))) {
+        if ($term && (empty($vocabularies) || !empty($vocabularies[$term->bundle()]))) {
           if ($type == 'convert') {
             $this->argument->argument = $term->id();
           }
diff --git a/core/modules/taxonomy/lib/Drupal/taxonomy/Plugin/views/field/TaxonomyIndexTid.php b/core/modules/taxonomy/lib/Drupal/taxonomy/Plugin/views/field/TaxonomyIndexTid.php
index 4353fdd..ba97f66 100644
--- a/core/modules/taxonomy/lib/Drupal/taxonomy/Plugin/views/field/TaxonomyIndexTid.php
+++ b/core/modules/taxonomy/lib/Drupal/taxonomy/Plugin/views/field/TaxonomyIndexTid.php
@@ -117,8 +117,8 @@ function pre_render(&$values) {
       foreach ($result as $term) {
         $this->items[$term->node_nid][$term->tid]['name'] = check_plain($term->name);
         $this->items[$term->node_nid][$term->tid]['tid'] = $term->tid;
-        $this->items[$term->node_nid][$term->tid]['vocabulary_vid'] = $term->vid;
-        $this->items[$term->node_nid][$term->tid]['vocabulary'] = check_plain($vocabularies[$term->vid]->label());
+        $this->items[$term->node_nid][$term->tid]['vocabulary_vid'] = $term->bundle();
+        $this->items[$term->node_nid][$term->tid]['vocabulary'] = check_plain($vocabularies[$term->bundle()]->label());
 
         if (!empty($this->options['link_to_taxonomy'])) {
           $this->items[$term->node_nid][$term->tid]['make_link'] = TRUE;
diff --git a/core/modules/taxonomy/lib/Drupal/taxonomy/Tests/EfqTest.php b/core/modules/taxonomy/lib/Drupal/taxonomy/Tests/EfqTest.php
index d843acc..8ca1afd 100644
--- a/core/modules/taxonomy/lib/Drupal/taxonomy/Tests/EfqTest.php
+++ b/core/modules/taxonomy/lib/Drupal/taxonomy/Tests/EfqTest.php
@@ -58,7 +58,7 @@ function testTaxonomyEfq() {
     }
 
     $result = entity_query('taxonomy_term')
-      ->condition('vid', $vocabulary2->vid)
+      ->condition('vid', $vocabulary2->id())
       ->execute();
     sort($result);
     $this->assertEqual(array_keys($terms2), $result, format_string('Taxonomy terms from the %name vocabulary were retrieved by entity query.', array('%name' => $vocabulary2->name)));
diff --git a/core/modules/taxonomy/taxonomy.module b/core/modules/taxonomy/taxonomy.module
index 9896915..b96fdd4 100644
--- a/core/modules/taxonomy/taxonomy.module
+++ b/core/modules/taxonomy/taxonomy.module
@@ -899,8 +899,8 @@ function taxonomy_vocabulary_load_multiple(array $vids = NULL) {
  *   An array of \Drupal\taxonomy\Plugin\Core\Entity\Vocabulary objects.
  */
 function taxonomy_vocabulary_sort(array &$vocabularies = array()) {
-  // @todo Investigate the cause of Warning: uasort() [function.uasort]: Array
-  //  was modified by the user comparison function
+  // @todo Remove error suppressing when http://drupal.org/node/1799600 is
+  // fixed.
   @uasort($vocabularies, 'Drupal\Core\Config\Entity\ConfigEntityBase::sort');
 }
 
@@ -951,7 +951,7 @@ function taxonomy_implode_tags($tags, $bundle = NULL) {
   $typed_tags = array();
   foreach ($tags as $tag) {
     // Extract terms belonging to the vocabulary in question.
-    if (!isset($bundle) || $tag->vid == $bundle) {
+    if (!isset($bundle) || $tag->bundle() == $bundle) {
       // Make sure we have a completed loaded taxonomy term.
       if ($tag instanceof EntityInterface && $label = $tag->label()) {
         // Commas and quotes in tag names are special cases, so encode 'em.
