diff --git a/menu_html.module b/menu_html.module
index 0201c0c..8c23a9a 100644
--- a/menu_html.module
+++ b/menu_html.module
@@ -4,10 +4,26 @@
  * menu_html.module
  */
 
+
+/**
+ * Implements hook_permission().
+ */
+function menu_html_permission(){
+  // Add a permission for using HTML in menu titles.
+  return array(
+    'use html for menu titles' => array(
+      'title' => t('Use HTML in menu titles'),
+      'description' => t('Allow users to use HTML in menu titles'),
+      'restrict access' => TRUE,
+    ),
+  );
+}
+
+
 /**
- * Implements hook_form_node_alter().
+ * Implements hook_form_BASE_FORM_ID_alter().
  */
-function menu_html_form_node_form_alter(&$form, $form_state, $form_id) {
+function menu_html_form_node_form_alter(&$form, &$form_state, $form_id) {
   if (!isset($form['menu']) || !user_access('administer menu')) {
     return;
   }
@@ -15,27 +31,49 @@ function menu_html_form_node_form_alter(&$form, $form_state, $form_id) {
   $item = isset($form['menu']['link']['options']['#value']['html']) ? TRUE : FALSE;
   if ($item) {
     $form['menu']['link_title']['#maxlength'] = 255;
+
+    // If the user doesn't have permission, don't let them edit the title.
+    if (!user_access('use html for menu titles')){
+      $form['menu']['link_title']['#disabled'] = TRUE;
+      $form['menu']['link_title']['#description'] .= t(' You do not have permission to edit menu titles with HTML in them.');
+    }
   }
 
   $form['menu']['link']['menu_html'] = array(
+    '#access' => user_access('use html for menu titles'),
     '#type' => 'checkbox',
     '#title' => t('Allow html'),
     // "html" is "1" or unset.
     '#default_value' => $item ? 1 : 0,
-    '#description' => t('If you want to add html tags to the title of a menu, enable this. This should only be accessible to trusted users.'),
+    '#description' => t('If you want to add HTML tags to the title of this menu item, enable this.'),
   );
 }
 
+
 /**
  * Implements hook_form_FORM_ID_alter().
  */
-function menu_html_form_menu_edit_item_alter(&$form, $form_state, $form_id) {
-  $form['link_title']['#maxlength'] = 255;
+function menu_html_form_menu_edit_item_alter(&$form, &$form_state, $form_id) {
+
+// If the user has permission, set the max length of the title. Else, disable it if HTML has been enabled.
+  if (user_access('use html for menu titles')){
+    $form['link_title']['#maxlength'] = 255;
+  }
+  else {
+    $html_enabled = array_key_exists('html', $form['options']['#value']) ? $form['options']['#value']['html'] : 0;
+    if ($html_enabled){ // HTML has been enabled and this user doesn't have access.
+      $form['link_title']['#disabled'] = TRUE;
+      $form['link_title']['#description'] .= t(' You do not have permission to edit menu titles with HTML in them.');
+    }
+  }
+
   $form['menu_html'] = array(
+    '#access' => user_access('use html for menu titles'),
     '#type' => 'checkbox',
     '#title' => t('Allow html'),
     '#default_value' => array_key_exists('html', $form['options']['#value']) ? $form['options']['#value']['html'] : 0,
-    '#description' => t('If you want to add html tags to the title of a menu, enable this. This should only be accessible to trusted users.'),
+    '#description' => t('If you want to add HTML tags to the title of this menu item, enable this.'),
+    '#weight' => 0,
   );
 }
 
