diff --git a/.travis.yml b/.travis.yml
old mode 100644
new mode 100755
diff --git a/README.md b/README.md
old mode 100644
new mode 100755
diff --git a/Tests/Controller/TaxonomyMenuTest.php b/Tests/Controller/TaxonomyMenuTest.php
old mode 100644
new mode 100755
diff --git a/composer.json b/composer.json
old mode 100644
new mode 100755
diff --git a/config/schema/taxonomy_menu.schema.yml b/config/schema/taxonomy_menu.schema.yml
old mode 100644
new mode 100755
index f353a1c..6674cd4
--- a/config/schema/taxonomy_menu.schema.yml
+++ b/config/schema/taxonomy_menu.schema.yml
@@ -23,3 +23,6 @@ taxonomy_menu.taxonomy_menu.*:
     menu_parent:
       type: string
       label: 'Menu parent'
+    description_field_name:
+      type: string
+      label: 'Description field name'
diff --git a/src/Controller/TaxonomyMenu.php b/src/Controller/TaxonomyMenu.php
old mode 100644
new mode 100755
diff --git a/src/Controller/TaxonomyMenuListBuilder.php b/src/Controller/TaxonomyMenuListBuilder.php
old mode 100644
new mode 100755
diff --git a/src/Entity/TaxonomyMenu.php b/src/Entity/TaxonomyMenu.php
old mode 100644
new mode 100755
index 5d74e0d..bc14af2
--- a/src/Entity/TaxonomyMenu.php
+++ b/src/Entity/TaxonomyMenu.php
@@ -85,6 +85,14 @@ class TaxonomyMenu extends ConfigEntityBase implements TaxonomyMenuInterface {
   protected $menu_parent;
 
   /**
+   * The name of the description field.
+   *
+   * @var string
+   *  The machine name of the field to be used as the description.
+   */
+  protected $description_field_name;
+
+  /**
    * {@inheritdoc}
    */
   public function getVocabulary() {
@@ -115,6 +123,13 @@ class TaxonomyMenu extends ConfigEntityBase implements TaxonomyMenuInterface {
   /**
    * {@inheritdoc}
    */
+  public function getDescriptionFieldName() {
+    return $this->description_field_name;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
   public function preSave(EntityStorageInterface $storage) {
     parent::preSave($storage);
     if (!$this->isNew()) {
diff --git a/src/Form/TaxonomyMenuForm.php b/src/Form/TaxonomyMenuForm.php
old mode 100644
new mode 100755
index e220afa..e9e7a8c
--- a/src/Form/TaxonomyMenuForm.php
+++ b/src/Form/TaxonomyMenuForm.php
@@ -49,8 +49,44 @@ class TaxonomyMenuForm extends EntityForm {
       '#title' => $this->t('Vocabulary'),
       '#options' => $options,
       '#default_value' => $taxonomy_menu->getVocabulary(),
+      '#ajax' => array(
+        'callback' => '::ajaxReplaceDescriptionFieldForm',
+        'wrapper' => 'description-field-container',
+        'method' => 'replace',
+      ),
+    ];
+
+    // Description field selection.
+    $form['description_container'] = [
+      '#type' => 'container',
+      '#prefix' => '<div id="description-field-container">',
+      '#suffix' => '</div>',
     ];
 
+    $selected_vocabulary = $taxonomy_menu->getVocabulary();
+
+    if ($selected_vocabulary) {
+      $field_definitions = $this->entityManager->getFieldDefinitions('taxonomy_term', $selected_vocabulary);
+
+      // Build a field options array.
+      $field_options = ['' => $this->t('none')];
+      if (count($field_definitions)) {
+        foreach ($field_definitions as $field_name => $field_definition) {
+          $field_options[$field_name] = $field_definition->getName();
+        }
+      }
+
+      if (count($field_options)) {
+        $form['description_container']['description_field_name'] = [
+          '#type' => 'select',
+          '#title' => $this->t('Description field'),
+          '#description' => $this->t('Select the field to be used for the menu item description.'),
+          '#options' => $field_options,
+          '#default_value' => $taxonomy_menu->getDescriptionFieldName(),
+        ];
+      }
+    }
+
     // Menu selection.
     $options = [];
     $menu_storage = \Drupal::entityTypeManager()->getStorage('menu');
@@ -97,6 +133,13 @@ class TaxonomyMenuForm extends EntityForm {
   }
 
   /**
+   * AJAX callback; Builds the description field selector.
+   */
+  public static function ajaxReplaceDescriptionFieldForm(array &$form, FormStateInterface $form_state) {
+    return $form['description_container'];
+  }
+
+  /**
    * {@inheritdoc}
    */
   public function save(array $form, FormStateInterface $form_state) {
diff --git a/src/Plugin/Derivative/TaxonomyMenuMenuLink.php b/src/Plugin/Derivative/TaxonomyMenuMenuLink.php
old mode 100644
new mode 100755
diff --git a/src/Plugin/Menu/TaxonomyMenuMenuLink.php b/src/Plugin/Menu/TaxonomyMenuMenuLink.php
old mode 100644
new mode 100755
index 451713e..6bd21d2
--- a/src/Plugin/Menu/TaxonomyMenuMenuLink.php
+++ b/src/Plugin/Menu/TaxonomyMenuMenuLink.php
@@ -104,8 +104,13 @@ class TaxonomyMenuMenuLink extends MenuLinkBase implements ContainerFactoryPlugi
     /** @var $link \Drupal\taxonomy\Entity\Term */
     $link = $this->entityManager->getStorage('taxonomy_term')
       ->load($this->pluginDefinition['metadata']['taxonomy_term_id']);
-    if (!empty($link)) {
-      return $link->getDescription();
+
+    // Get the description field name.
+    $taxonomy_menu = $this->entityManager->getStorage('taxonomy_menu')->load($this->pluginDefinition['metadata']['taxonomy_menu_id']);
+    $description_field_name = $taxonomy_menu->getDescriptionFieldName();
+
+    if (!empty($link) && $link->hasField($description_field_name)) {
+      return $link->{$description_field_name}->value;
     }
     return NULL;
   }
diff --git a/src/TaxonomyMenuHelper.php b/src/TaxonomyMenuHelper.php
old mode 100644
new mode 100755
diff --git a/src/TaxonomyMenuInterface.php b/src/TaxonomyMenuInterface.php
old mode 100644
new mode 100755
index a8b7876..fd02d4f
--- a/src/TaxonomyMenuInterface.php
+++ b/src/TaxonomyMenuInterface.php
@@ -33,6 +33,12 @@ interface TaxonomyMenuInterface extends ConfigEntityInterface {
   public function getMenuParent();
 
   /**
+   * @return string
+   *   The machine name of the field to be used as the description.
+   */
+  public function getDescriptionFieldName();
+
+  /**
    * Get menu link plugin definitions
    *
    * @param array $base_plugin_definition
diff --git a/src/Tests/TaxonomyMenuOperations.php b/src/Tests/TaxonomyMenuOperations.php
old mode 100644
new mode 100755
diff --git a/taxonomy_menu.info.yml b/taxonomy_menu.info.yml
old mode 100644
new mode 100755
diff --git a/taxonomy_menu.links.action.yml b/taxonomy_menu.links.action.yml
old mode 100644
new mode 100755
diff --git a/taxonomy_menu.links.menu.yml b/taxonomy_menu.links.menu.yml
old mode 100644
new mode 100755
diff --git a/taxonomy_menu.module b/taxonomy_menu.module
old mode 100644
new mode 100755
diff --git a/taxonomy_menu.routing.yml b/taxonomy_menu.routing.yml
old mode 100644
new mode 100755
diff --git a/taxonomy_menu.services.yml b/taxonomy_menu.services.yml
old mode 100644
new mode 100755
