diff --git a/special_menu_items.module b/special_menu_items.module
old mode 100644
new mode 100755
index ebebcf9..a1281fe
--- a/special_menu_items.module
+++ b/special_menu_items.module
@@ -22,12 +22,24 @@ function special_menu_items_menu() {
     'type' => MENU_CALLBACK,
   );
 
+  $items['<nolink>/%menu_special'] = array(
+    'page callback' => 'drupal_not_found',
+    'access callback' => TRUE,
+    'type' => MENU_CALLBACK,
+  );
+
   $items['<separator>'] = array(
     'page callback' => 'drupal_not_found',
     'access callback' => TRUE,
     'type' => MENU_CALLBACK,
   );
 
+  $items['<separator>/%menu_special'] = array(
+    'page callback' => 'drupal_not_found',
+    'access callback' => TRUE,
+    'type' => MENU_CALLBACK,
+  );
+
   $items['admin/config/system/special_menu_items'] = array(
     'title' => 'Special Menu Items',
     'description' => 'Configure Special Menu Items.',
@@ -41,24 +53,33 @@ function special_menu_items_menu() {
 }
 
 /**
+ * Argument processor for <nolink>/n menu items. Accepts any argument
+ * It is the site builder's responsibility to use unique arguments if he wants
+ * to have features exportable menu links.
+ *
+ * @param $id
+ */
+function menu_special_load($id) {
+  return TRUE;
+}
+
+/**
  * Override of theme_link()
  * This function will render link if it is "nolink" or "separator". Otherwise it will call originally
  * overwritten menu_item_link function.
  */
 function special_menu_items_link(array $variables) {
-  if (in_array($variables['path'], array('<nolink>', '<separator>'))) {
-    switch ($variables['path']) {
-      case '<nolink>':
-        $tag = variable_get('special_menu_items_nolink_tag', '<span>');
-        $title = $variables['options']['html'] ? $variables['text'] : check_plain($variables['text']);
-        $variables['options']['attributes']['class'][] = 'nolink';
-        break;
-
-      case '<separator>':
-        $tag = variable_get('special_menu_items_separator_tag', '<span>');
-        $title = variable_get('special_menu_items_separator_value', '<hr>');
-        $variables['options']['attributes']['class'][] = 'separator';
-        break;
+  if (($nolink = strpos($variables['path'], '<nolink>') !== FALSE) OR ($separator = strpos($variables['path'], '<separator>') !== FALSE)) {
+    if (isset($nolink)) {
+      $tag = variable_get('special_menu_items_nolink_tag', '<span>');
+      $title = $variables['options']['html'] ? $variables['text'] : check_plain($variables['text']);
+      $variables['options']['attributes']['class'][] = 'nolink';
+    }
+
+    if (isset($separator)) {
+      $tag = variable_get('special_menu_items_separator_tag', '<span>');
+      $title = variable_get('special_menu_items_separator_value', '<hr>');
+      $variables['options']['attributes']['class'][] = 'separator';
     }
 
     $attributes = drupal_attributes($variables['options']['attributes']);
@@ -114,20 +135,7 @@ function special_menu_items_theme_registry_alter(&$registry) {
  * Description changed, added nolink and separator as path types.
  */
 function special_menu_items_form_menu_edit_item_alter(&$form, &$form_state) {
- // Some menu items have a pre-defined path which cannot be modified hence no default_value
- if (isset($form['link_path']['#default_value'])) {
-   $default_value = $form['link_path']['#default_value'];
-
-   if (preg_match('/^<nolink>\/[0-9]+$/', $default_value)) {
-     $default_value = '<nolink>';
-   }
-   elseif (preg_match('/^<separator>\/[0-9]+$/', $default_value)) {
-     $default_value = '<separator>';
-   }
-
-   $form['link_path']['#default_value'] = $default_value;
-   $form['link_path']['#description'] .=  ' ' . t('Enter "%nolink" to generate non-linkable item, enter "%separator" to generate separator item.', array('%nolink' => '<nolink>', '%separator' => '<separator>'));
-  }
+   $form['link_path']['#description'] .=  ' ' . t('Enter "%nolink" to generate non-linkable item, enter "%separator" to generate separator item. x is optional and should be a unique id if you want to export menus in features.', array('%nolink' => '<nolink>/x', '%separator' => '<separator>/x'));
 }
 
 /**
