diff --git a/misc/machine-name.js b/misc/machine-name.js
index 2691c3b..8036e6d 100644
--- a/misc/machine-name.js
+++ b/misc/machine-name.js
@@ -14,6 +14,7 @@ Drupal.behaviors.machineName = {
    *   - target: The HTML ID of the machine name form element.
    *   - suffix: The HTML ID of a container to show the machine name preview in
    *     (usually a field suffix after the human-readable name form element).
+   *   - prefix: Optional prefix to avoid namespace conflicts
    *   - label: The label to show for the machine name preview.
    *   - replace_pattern: A regular expression (without modifiers) matching
    *     disallowed characters in the machine name; e.g., '[^a-z0-9]+'.
@@ -112,7 +113,12 @@ Drupal.behaviors.machineName = {
    */
   transliterate: function (source, settings) {
     var rx = new RegExp(settings.replace_pattern, 'g');
-    return source.toLowerCase().replace(rx, settings.replace).substr(0, settings.maxlength);
+    if(settings.prefix){
+      return settings.prefix + "-" + source.toLowerCase().replace(rx, settings.replace).substr(0, settings.maxlength);
+    }
+    else{
+      return source.toLowerCase().replace(rx, settings.replace).substr(0, settings.maxlength);
+    }
   }
 };
 
diff --git a/modules/menu/menu.admin.inc b/modules/menu/menu.admin.inc
index d9b98cc..1af871a 100644
--- a/modules/menu/menu.admin.inc
+++ b/modules/menu/menu.admin.inc
@@ -456,6 +456,8 @@ function menu_edit_menu($form, &$form_state, $type, $menu = array()) {
       'label' => t('URL path'),
       'replace_pattern' => '[^a-z0-9-]+',
       'replace' => '-',
+      'prefix' => 'menu',
+      // Prefix 'menu' is added to the menu name to help avoid name-space conflicts.
     ),
     // A menu's machine name cannot be changed.
     '#disabled' => !empty($menu['old_name']) || isset($system_menus[$menu['menu_name']]),
@@ -556,8 +558,6 @@ function menu_delete_menu_confirm_submit($form, &$form_state) {
  * @see form_validate_machine_name()
  */
 function menu_edit_menu_name_exists($value) {
-  // 'menu-' is added to the menu name to avoid name-space conflicts.
-  $value = 'menu-' . $value;
   $custom_exists = db_query_range('SELECT 1 FROM {menu_custom} WHERE menu_name = :menu', 0, 1, array(':menu' => $value))->fetchField();
   $link_exists = db_query_range("SELECT 1 FROM {menu_links} WHERE menu_name = :menu", 0, 1, array(':menu' => $value))->fetchField();
 
@@ -571,8 +571,6 @@ function menu_edit_menu_submit($form, &$form_state) {
   $menu = $form_state['values'];
   $path = 'admin/structure/menu/manage/';
   if ($form['#insert']) {
-    // Add 'menu-' to the menu name to help avoid name-space conflicts.
-    $menu['menu_name'] = 'menu-' . $menu['menu_name'];
     $link['link_title'] = $menu['title'];
     $link['link_path'] = $path . $menu['menu_name'];
     $link['router_path'] = $path . '%';
