diff --git a/core/modules/menu/lib/Drupal/menu/MenuFormController.php b/core/modules/menu/lib/Drupal/menu/MenuFormController.php
index 68bc6a4..e3099f7 100644
--- a/core/modules/menu/lib/Drupal/menu/MenuFormController.php
+++ b/core/modules/menu/lib/Drupal/menu/MenuFormController.php
@@ -98,7 +98,7 @@ public function form(array $form, array &$form_state) {
       '#type' => 'textfield',
       '#title' => t('Administrative summary'),
       '#maxlength' => 512,
-      '#default_value' => $menu->description,
+      '#default_value' => $menu->getDescription(),
     );
 
     $form['langcode'] = array(
diff --git a/core/modules/menu/lib/Drupal/menu/MenuListController.php b/core/modules/menu/lib/Drupal/menu/MenuListController.php
index 4c5a408..57d7370 100644
--- a/core/modules/menu/lib/Drupal/menu/MenuListController.php
+++ b/core/modules/menu/lib/Drupal/menu/MenuListController.php
@@ -34,7 +34,7 @@ public function buildRow(EntityInterface $entity) {
       'data' => $this->getLabel($entity),
       'class' => array('menu-label'),
     );
-    $row['description'] = filter_xss_admin($entity->description);
+    $row['description'] = filter_xss_admin($entity->get('description'));
     return $row + parent::buildRow($entity);
   }
 
diff --git a/core/modules/system/lib/Drupal/system/Entity/Menu.php b/core/modules/system/lib/Drupal/system/Entity/Menu.php
index 4727f8a..51dfe8f 100644
--- a/core/modules/system/lib/Drupal/system/Entity/Menu.php
+++ b/core/modules/system/lib/Drupal/system/Entity/Menu.php
@@ -59,7 +59,7 @@ class Menu extends ConfigEntityBase implements MenuInterface {
    *
    * @var string
    */
-  public $description;
+  protected $description;
 
   /**
    * The locked status of this menu.
@@ -73,8 +73,6 @@ class Menu extends ConfigEntityBase implements MenuInterface {
    */
   public function getExportProperties() {
     $properties = parent::getExportProperties();
-    // @todo Make $description protected and include it here, see
-    //   https://drupal.org/node/2030645.
     $names = array(
       'locked',
     );
@@ -87,8 +85,31 @@ public function getExportProperties() {
   /**
    * {@inheritdoc}
    */
+  public function getDescription() {
+    return $this->description;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function setDescription($description) {
+    $this->set('description', $description);
+    return $this;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
   public function isLocked() {
     return (bool) $this->locked;
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function setLocked($locked) {
+    $this->set('locked', $locked);
+    return $this;
+  }
+
 }
diff --git a/core/modules/system/lib/Drupal/system/MenuInterface.php b/core/modules/system/lib/Drupal/system/MenuInterface.php
index d9375c0..f28482c 100644
--- a/core/modules/system/lib/Drupal/system/MenuInterface.php
+++ b/core/modules/system/lib/Drupal/system/MenuInterface.php
@@ -15,6 +15,25 @@
 interface MenuInterface extends ConfigEntityInterface {
 
   /**
+   * Returns the description of the menu.
+   *
+   * @return string
+   *   Description of the menu.
+   */
+  public function getDescription();
+
+  /**
+   * Sets the description of the menu.
+   *
+   * @param string $description
+   *   The menu description.
+   *
+   * @return \Drupal\system\MenuInterface
+   *   The called menu entity.
+   */
+  public function setDescription($description);
+
+  /**
    * Determines if this menu is locked.
    *
    * @return bool
@@ -22,4 +41,15 @@
    */
   public function isLocked();
 
+  /**
+   * Sets the locked status of a menu.
+   *
+   * @param bool $locked
+   *   TRUE to set the menu as locked, FALSE to set it as unlocked.
+   *
+   * @return \Drupal\system\MenuInterface
+   *   The called menu entity.
+   */
+  public function setLocked($locked);
+
 }
