diff --git a/core/modules/menu_ui/menu_ui.module b/core/modules/menu_ui/menu_ui.module
index 4ba997d..b3b325b 100644
--- a/core/modules/menu_ui/menu_ui.module
+++ b/core/modules/menu_ui/menu_ui.module
@@ -459,7 +459,7 @@ function menu_ui_form_node_type_form_alter(&$form, FormStateInterface $form_stat
     '#type' => 'details',
     '#title' => t('Menu settings'),
     '#attached' => array(
-      'library' => array('menu/drupal.menu.admin'),
+      'library' => array('menu_ui/drupal.menu_ui.admin'),
     ),
     '#group' => 'additional_settings',
   );
@@ -485,6 +485,7 @@ function menu_ui_form_node_type_form_alter(&$form, FormStateInterface $form_stat
     '#attributes' => array('class' => array('menu-title-select')),
   );
 
+  $form['actions']['submit']['#validate'][] = 'menu_ui_form_node_type_form_validate';
   $form['actions']['submit']['#submit'][] = 'menu_ui_form_node_type_form_submit';
 }
 
@@ -493,6 +494,26 @@ function menu_ui_form_node_type_form_alter(&$form, FormStateInterface $form_stat
  *
  * @see menu_ui_form_node_type_form_alter().
  */
+function menu_ui_form_node_type_form_validate(&$form, FormStateInterface $form_state) {
+  $available_menus = array_values(array_filter($form_state['values']['menu_options']));
+  // If there is at least one menu allowed, the selected item should be in
+  // one of them.
+  if (count($available_menus)) {
+    $menu_item_id_parts = explode(':', $form_state['values']['menu_parent']);
+    if (!in_array($menu_item_id_parts[0], $available_menus)) {
+      form_set_error('menu_parent', $form_state, t('The selected menu item is not under one of the selected menus.'));
+    }
+  }
+  else {
+    $form_state['values']['menu_parent'] = '';
+  }
+}
+
+/**
+ * Submit handler for forms with menu options.
+ *
+ * @see menu_ui_form_node_type_form_alter().
+ */
 function menu_ui_form_node_type_form_submit(&$form, FormStateInterface $form_state) {
   $type = $form_state['controller']->getEntity();
   \Drupal::config('menu.entity.node.' . $type->id())
diff --git a/core/modules/menu_ui/src/Tests/MenuNodeTest.php b/core/modules/menu_ui/src/Tests/MenuNodeTest.php
index da83eb1..9629b2e 100644
--- a/core/modules/menu_ui/src/Tests/MenuNodeTest.php
+++ b/core/modules/menu_ui/src/Tests/MenuNodeTest.php
@@ -61,6 +61,16 @@ function testMenuNodeFormWidget() {
     $node = $this->drupalGetNodeByTitle($node_title);
     $this->assertEqual($node->getTitle(), $edit['title[0][value]']);
 
+    // Test that we cannot set a menu item from a menu that is not set as
+    // available.
+    $edit = array(
+      'menu_options[tools]' => 1,
+      'menu_parent' => 'main:',
+    );
+    $this->drupalPostForm('admin/structure/types/manage/page', $edit, t('Save content type'));
+    $this->assertText(t('The selected menu item is not under one of the selected menus.'));
+    $this->assertNoRaw(t('The content type %name has been updated.', array('%name' => 'Basic page')));
+
     // Enable Tools menu as available menu.
     $edit = array(
       'menu_options[main]' => 1,
@@ -68,6 +78,7 @@ function testMenuNodeFormWidget() {
       'menu_parent' => 'main:',
     );
     $this->drupalPostForm('admin/structure/types/manage/page', $edit, t('Save content type'));
+    $this->assertRaw(t('The content type %name has been updated.', array('%name' => 'Basic page')));
 
     // Create a node.
     $node_title = $this->randomMachineName();
