--- term_permissions.module	Fri Jan 16 05:21:36 1970
+++ term_permissions.module	Fri Jan 16 05:21:36 1970
@@ -141,6 +141,20 @@
       }
     }
   }
+  
+  // Content Taxonmy && Editable Fields support
+  $node_form = isset($form['type']) && isset($form['#node'])&& $form['type']['#value'] .'_node_form' == $form_id;  
+  if (module_exists('content') && module_exists('content_taxonomy') && (!variable_get('taxonomy_override_selector', FALSE)) && ($node_form || $form_id == 'editablefields_form')) {
+    $fields = term_permissions_get_field_names_by_type('content_taxonomy');
+    foreach ($fields as $field) {
+      if (isset($form[$field])) {
+        if (!isset($form[$field]['#after_build'])) {
+          $form[$field]['#after_build'] = array();
+        }
+        $form[$field]['#after_build'][] = 'term_permissions_content_taxonomy_after_build';
+      }
+    }
+  }
 }
 
 /**
@@ -243,3 +257,63 @@
   }
   exit(drupal_json($matches));
 }
+
+/**
+ * CCK after build function for Content Taxonmy module. 
+ */
+function term_permissions_content_taxonomy_after_build($element, &$form_state) {
+  if (isset($element['value']['#type']) && $element['value']['#type'] == 'select') {
+    global $user;
+    
+    $current_value = $element['value']['#value'];
+    // If the user cant access the current value they should not 
+    // be able to edit the field.   
+    if (!term_permissions_allowed($current_value, $user)) {
+      $element['#access'] = FALSE;
+      _term_permissions_access_message($element['#title'], $element['value']['#options'][$current_value]);
+      return $element;
+    }    
+    
+    // Create reference to options array.
+    $options = &$element['value']['#options'];    
+    foreach ($options as $tid => $term_name) {    
+      if (is_numeric($tid)) {
+        // Now we have the term ID, check to see if the current user has
+        // access to the term.      
+        if (!term_permissions_allowed($tid, $user)) {
+          unset($options[$tid]);
+        }
+      }
+    }
+    
+    // If the user doesn't have access to any of the terms in the
+    // vocabulary, remove the form item entirely.
+    if (count($options) === 0) {
+      $element['#access'] = FALSE;
+      _term_permissions_access_message($element['#title'], $element['value']['#options'][$current_value]);
+    }
+  }
+  return $element;
+}
+
+/**
+ * Code taken from content_rules_get_field_names_by_type().
+ * Used to get all Content Taxonmy fields.
+ */
+function term_permissions_get_field_names_by_type($type = NULL) {
+  $fields = array();
+  if (!module_exists('content')) {
+    return $fields;
+  }
+  foreach (content_fields() as $field) {
+    if (!isset($type) || $field['type'] == $type) {
+      $fields[$field['field_name']] = $field['field_name'];
+    }
+  }
+  asort($fields);
+  return $fields;
+}
+
+function _term_permissions_access_message($field, $value) {
+  drupal_set_message(t("Your account doesn't have permission to edit the %field field. %field current value is %value", array('%field' => $field, '%value' => $value)), 'warning');
+}
\ No newline at end of file
