diff --git a/core/modules/menu/lib/Drupal/menu/Tests/MenuTest.php b/core/modules/menu/lib/Drupal/menu/Tests/MenuTest.php
index 579b09e..0f1105e 100644
--- a/core/modules/menu/lib/Drupal/menu/Tests/MenuTest.php
+++ b/core/modules/menu/lib/Drupal/menu/Tests/MenuTest.php
@@ -285,7 +285,7 @@ class MenuTest extends WebTestBase {
     $this->drupalLogin($this->big_user);
 
     // Make a path with query and fragment on.
-    $path = 'node?arg1=value1&arg2=value2';
+    $path = 'node?arg1=value1&arg2=value2#fragment';
     $item = $this->addMenuLink(0, $path);
 
     $this->drupalGet('admin/structure/menu/item/' . $item['mlid'] . '/edit');
@@ -296,6 +296,14 @@ class MenuTest extends WebTestBase {
     $this->drupalPost('admin/structure/menu/item/' . $item['mlid'] . '/edit', array('link_path' => $path), t('Save'));
     $this->drupalGet('admin/structure/menu/item/' . $item['mlid'] . '/edit');
     $this->assertFieldByName('link_path', $path, t('Path no longer has query or fragment.'));
+
+    // Repeat with an external link.
+    $path = 'node?arg1=value1&arg2=value2#fragment';
+    $item = $this->addMenuLink(0, $path);
+    $path = 'http://www.example.com/';
+    $this->drupalPost('admin/structure/menu/item/' . $item['mlid'] . '/edit', array('link_path' => $path), t('Save'));
+    $this->drupalGet('admin/structure/menu/item/' . $item['mlid'] . '/edit');
+    $this->assertFieldByName('link_path', $path, t('Path no longer has query or fragment.'));
   }
 
   /**
diff --git a/core/modules/menu/menu.admin.inc b/core/modules/menu/menu.admin.inc
index fc38caa..4b554f7 100644
--- a/core/modules/menu/menu.admin.inc
+++ b/core/modules/menu/menu.admin.inc
@@ -397,7 +397,10 @@ function menu_edit_item_validate($form, &$form_state) {
     drupal_set_message(t('The menu system stores system paths only, but will use the URL alias for display. %link_path has been stored as %normal_path', array('%link_path' => $item['link_path'], '%normal_path' => $normal_path)));
     $item['link_path'] = $normal_path;
   }
-  if (!url_is_external($item['link_path'])) {
+  if (url_is_external($item['link_path'])) {
+    unset($item['options']['query'], $item['options']['fragment']);
+  }
+  else {
     $parsed_link = parse_url($item['link_path']);
     if (isset($parsed_link['query'])) {
       $item['options']['query'] = drupal_get_query_array($parsed_link['query']);
diff --git a/sites/default/default.settings.php b/sites/default/default.settings.php
old mode 100755
new mode 100644
