diff --git a/admin_menu.admin.js b/admin_menu.admin.js
new file mode 100644
index 0000000..63a752a
--- /dev/null
+++ b/admin_menu.admin.js
@@ -0,0 +1,43 @@
+(function($) {
+
+/**
+ * Asks whether to auto-enable admin_menu with administrative pages permission.
+ */
+Drupal.behaviors.adminMenuAdminConfirmPermission = {
+  attach: function (context, settings) {
+    $('#permissions', context).once('admin-menu-confirm', function () {
+      // Retrieve matrix/mapping - these need to use the same indexes for the
+      // same permissions and roles.
+      var $roles = $(this).find('th:not(:first)');
+      var $admin = $(this).find('input[name$="[access administration pages]"]');
+      var $menu = $(this).find('input[name$="[access administration menu]"]');
+
+      // Retrieve the permission label - without description.
+      var adminPermission = $.trim($admin.eq(0).parents('td').prev().children().get(0).firstChild.textContent);
+      var menuPermission = $.trim($menu.eq(0).parents('td').prev().children().get(0).firstChild.textContent);
+
+      $admin.each(function (index) {
+        // Only proceed if both are not enabled already.
+        if (!(this.checked && $menu[index].checked)) {
+          // Stack both checkboxes and attach a click event handler to both.
+          $(this).add($menu[index]).click(function () {
+            // Do nothing when disabling a permission.
+            if (this.checked) {
+              // Figure out which is the other, check whether it still disabled,
+              // and if so, ask whether to auto-enable it.
+              var other = (this == $admin[index] ? $menu[index] : $admin[index]);
+              if (!other.checked && confirm(Drupal.t('Also allow !name role to !permission?', {
+                '!name': $roles[index].textContent,
+                '!permission': (this == $admin[index] ? menuPermission : adminPermission)
+              }))) {
+                other.checked = 'checked';
+              }
+            }
+          });
+        }
+      });
+    });
+  }
+};
+
+})(jQuery);
diff --git a/admin_menu.module b/admin_menu.module
index 79a7051..8ff2a64 100644
--- a/admin_menu.module
+++ b/admin_menu.module
@@ -728,6 +728,13 @@ function admin_menu_form_alter(&$form, &$form_state, $form_id) {
   if ($form_id == 'user_profile_form') {
     $form_state['admin_menu_uid'] = $form_state['user']->uid;
   }
+
+  // UX: Add a confirmation to the permissions form to ask the user whether to
+  // auto-enable the 'access administration menu' permission along with
+  // 'access administration pages'.
+  if ($form_id == 'user_admin_permissions') {
+    $form['#attached']['js'][] = drupal_get_path('module', 'admin_menu') . '/admin_menu.admin.js';
+  }
 }
 
 /**
