diff --git a/menu_attributes.api.php b/menu_attributes.api.php
index a6b138d..e1e8935 100644
--- a/menu_attributes.api.php
+++ b/menu_attributes.api.php
@@ -19,6 +19,9 @@
  *   - scope: An array of scope options, MENU_ATTRIBUTES_LINK or
  *     MENU_ATTRIBUTES_ITEM or both. If no scope is provided, both will
  *     be assumed.
+ *   - menu: An array of menu machine names. This will limit the attribute
+ *     to being available on on the listed menus. If none are provided, the
+ *     attribute will be available on all menus.
  *
  * @see menu_attributes_menu_attribute_info()
  * @see menu_attributes_get_menu_attribute_info()
@@ -33,6 +36,7 @@ function hook_menu_attribute_info() {
       '#size' => 2,
     ),
     'scope' => array(MENU_ATTRIBUTES_LINK),
+    'menu' => array('main-menu')
   );
 
   return $info;
diff --git a/menu_attributes.module b/menu_attributes.module
index 6b0cdde..8ea8ab4 100644
--- a/menu_attributes.module
+++ b/menu_attributes.module
@@ -190,7 +190,14 @@ function _menu_attributes_form_alter(array &$form, array $item = array(), array
   );
 
   $attributes = menu_attributes_get_menu_attribute_info();
+
   foreach ($attributes as $attribute => $info) {
+    // Skip this attribute if the current menu form being altered is not in the
+    // list of this attribute's allowed menus.
+    if (isset($info['menu']) && is_array($info['menu']) && !in_array($item['menu_name'], $info['menu'])) {
+      continue;
+    }
+    
     // If no scope is set, this attribute should be available to both link
     // and item.
     if (!isset($info['scope'])) {
