Index: modules/hs_content_taxonomy.module
===================================================================
--- modules/hs_content_taxonomy.module	(revision 2821)
+++ modules/hs_content_taxonomy.module	(working copy)
@@ -22,18 +22,50 @@
  * Implementation of hook_menu().
  */
 function hs_content_taxonomy_menu() {
-  $items['admin/content/node-type/%/fields/%/hs_config'] = array(
-    'title'            => t('HS config'),
-    'access arguments' => array('administer site configuration'),
-    'page callback'    => 'drupal_get_form',
-    'page arguments'   => array('hs_content_taxonomy_config_form', 3, 5),
-    'type'             => MENU_NORMAL_ITEM,
-    'file'             => 'hs_content_taxonomy.admin.inc',
-  );
+  
+    if (!defined('MAINTENANCE_MODE') && variable_get('content_schema_version', -1) >= 6007) {
+      foreach (node_get_types() as $type) {
+        $type_name = $type->type;
+        $content_type = content_types($type_name);
+        $type_url_str = $content_type['url_str'];
+        foreach ((array) $content_type['fields'] as $field) {
+          if ($field['widget']['module'] != 'hs_content_taxonomy') continue;
+          $field_name = $field['field_name'];
+          $items['admin/content/node-type/'. $type_url_str .'/fields/'. $field_name .'/hs_config'] = array(
+            'title' => 'Hierarchical Select Configuration',
+            'page callback' => 'drupal_get_form',
+            'page arguments' => array('hs_content_taxonomy_config_form', $type_name, $field_name),
+            'access arguments' => array('administer content types'),
+            'file' => 'hs_content_taxonomy.admin.inc',
+            'type' => MENU_CALLBACK,
+          );
+        }
+      }
+  }
+
   return $items;
 }
 
 /**
+ * Implementation of hook_content_fieldapi().
+ */
+ 
+function hs_content_taxonomy_content_fieldapi($op,$field) {
+   switch($op) {
+    case 'update instance':
+
+      $previous_field = content_fields($field['field_name'],$field['type_name']);
+      if ( (  $field['widget']['module'] == 'hs_content_taxonomy' 
+          ||  $previous_field['widget']['module'] == 'hs_content_taxonomy') 
+        && $previous_field['widget']['module'] != $field['widget']['module']) {
+            variable_set('menu_rebuild_needed', TRUE);      
+           }
+      break;
+   } 
+}
+
+
+/**
  * Implementation of hook_form_alter().
  */
 function hs_content_taxonomy_form_alter(&$form, &$form_state, $form_id) {
@@ -118,7 +150,8 @@
       drupal_add_css(drupal_get_path('module', 'hs_content_taxonomy') .'/hs_content_taxonomy.css');
       $context = _hs_content_taxonomy_parse_context_from_url();
       list($content_type_name, $field_name) = $context;
-      $url = 'admin/content/node-type/'. $content_type_name .'/fields/'. $field_name .'/hs_config';
+      $content_type = content_types($content_type_name);
+      $url = 'admin/content/node-type/'.  $content_type['url_str'] .'/fields/'. $field_name .'/hs_config';
       $items[] = t(
         "Due to limitations of CCK, there is a separate form to <a href=\"!url\">
         configure this Hierarchical Select widget's settings.</a>",array('!url' => url($url))
@@ -469,7 +502,8 @@
         foreach ($content_types as $content_type_name => $content_type) {
           if (isset($content_type['fields'][$field_name]) && $content_type['fields'][$field_name]['widget']['type'] == 'content_taxonomy_hs') {
             $vocabulary = taxonomy_vocabulary_load($field['vid']);
-
+            
+            $type_url_str = $content_type['url_str'];
             $config_id = "content-taxonomy-$field_name";
             $config_info["$config_id|$content_type_name"] = array(
               'config_id'      => $config_id,
@@ -479,7 +513,7 @@
               'entity'         => t($content_type['name']),
               'context type'   => t('Node form'),
               'context'        => '',
-              'edit link'      => "admin/content/node-type/$content_type_name/fields/$field_name/hs_config",
+              'edit link'      => "admin/content/node-type/$type_url_str/fields/$field_name/hs_config",
             );
           }
         }
@@ -502,7 +536,7 @@
  */
 function _hs_content_taxonomy_parse_context_from_url() {
   if (arg(0) == 'admin' && arg(1) == 'content' && arg(2) == 'node-type') {
-    $content_type = content_types(arg(3));
+    $content_type = content_types(str_replace('-','_',arg(3)));
 
     $field_name = arg(5);
 
Index: modules/hs_content_taxonomy.admin.inc
===================================================================
--- modules/hs_content_taxonomy.admin.inc	(revision 2818)
+++ modules/hs_content_taxonomy.admin.inc	(working copy)
@@ -61,7 +61,7 @@
   $form['hierarchical_select_config'] = hierarchical_select_common_config_form($module, $params, $config_id, $defaults, $strings, $max_hierarchy_depth, $preview_is_required);
 
   $form['link'] = array(
-    '#value' => l('Back to the field configuration', 'admin/content/node-type/'. $content_type['type'] .'/fields/'. $field_name),
+    '#value' => l('Back to the field configuration', 'admin/content/node-type/'. $content_type['url_str'] .'/fields/'. $field_name),
     '#prefix' => '<div class="cck-hierarchical-select-back-link">',
     '#suffix' => '</div>',
     '#weight' => -5,
