diff --git a/modules/menu/menu.admin.inc b/modules/menu/menu.admin.inc
index a8e8b49d09b9402719c29a242044f94d26c17327..1092afb80ce38bd4c57073f98105f5f4ecaaa436 100644
--- a/modules/menu/menu.admin.inc
+++ b/modules/menu/menu.admin.inc
@@ -344,9 +344,17 @@ function menu_edit_item_validate($form, &$form_state) {
     if (isset($parsed_link['query'])) {
       $item['options']['query'] = $parsed_link['query'];
     }
+    else {
+      // Use unset() rather than setting to empty string
+      // to avoid redundant serialized data being stored.
+      unset($item['options']['query']);
+    }
     if (isset($parsed_link['fragment'])) {
       $item['options']['fragment'] = $parsed_link['fragment'];
     }
+    else {
+      unset($item['options']['fragment']);
+    }
     if ($item['link_path'] != $parsed_link['path']) {
       $item['link_path'] = $parsed_link['path'];
     }