Index: sites/all/modules/content_taxonomy/content_taxonomy.module
===================================================================
--- sites/all/modules/content_taxonomy/content_taxonomy.module	(revision 7310)
+++ sites/all/modules/content_taxonomy/content_taxonomy.module	(working copy)
@@ -71,6 +71,13 @@
         '#description' => t('If this option is set, saving of terms is additionally handled by the taxonomy module. So saved terms from Content Taxonomy fields will appear as any other terms saved by the core taxonomy module. Set this option if you are using any other taxonomy application, like tagadelic. Otherwise terms are only saved in the cck tables and can only be accessed via the node or a view'), 
       );
       
+      //Vocabulary not showing on node form if content taxonomy is assigned the same vocabulary
+      $form['keep_vocabulary'] = array(  
+          '#type' => 'checkbox',   
+          '#title' => t("Keep vocabulary on node form if context taxonomy field is assigned to same vocabulary"),
+          '#default_value' => is_numeric($field['keep_vocabulary']) ? $field['keep_vocabulary'] : 1,
+        );
+      
       $options_voc = array();
       foreach (taxonomy_get_vocabularies() as $voc) {
         _content_taxonomy_localize_vocabulary($voc);
@@ -90,6 +97,7 @@
         '#title' => t('Advanced settings for hierarchical vocabularies'),
         '#collapsible' => TRUE,
       );
+
       
       $form['hierarchical_vocabulary']['parent'] = array(
         '#title' => t('Parent Term'),
@@ -123,7 +131,7 @@
       return $form;   
     
     case 'save':
-      return array('save_term_node', 'vid', 'parent', 'parent_php_code', 'depth');
+      return array('save_term_node', 'vid', 'parent', 'parent_php_code', 'depth','keep_vocabulary');
     
     case 'database columns':
       return array(
@@ -156,7 +164,7 @@
     case 'presave':
       if ($field['save_term_node']) {
         static $_content_taxonomy_array_cleared;
-        if (!is_array($_content_taxonomy_array_cleared) || !$_content_taxonomy_array_cleared[$node->nid][$field['vid']]) {
+        if (!$field['keep_vocabulary'] && (!is_array($_content_taxonomy_array_cleared) || !$_content_taxonomy_array_cleared[$node->nid][$field['vid']])) {
           _content_taxonomy_taxonomy_unset($node->taxonomy, array($field['vid']));
           $_content_taxonomy_array_cleared[$node->nid][$field['vid']] = TRUE;
         }
@@ -327,6 +335,7 @@
  * hides the taxonomy form if there exists a content taxonomy field, which is set to 'hide default taxonomy fields'
  */
 function content_taxonomy_form_alter(&$form, $form_state, $form_id) {
+  
   if (isset($form['type']['#value']) && $form['type']['#value'] .'_node_form' == $form_id && isset($form['taxonomy'])) {
     if (!is_array($form['taxonomy'])) {
       // empty taxonomy arrays can cause errors on preview
@@ -340,10 +349,11 @@
     $info = _content_type_info();
     $content_type = $info['content types'][$form['type']['#value']];
     foreach ($content_type['fields'] as $field) {
-      if ($field['type'] == 'content_taxonomy' && (!in_array($field['vid'], $_content_taxonomy_vids))) {
+      if ($field['type'] == 'content_taxonomy' && (!in_array($field['vid'], $_content_taxonomy_vids)) && !$field['keep_vocabulary']) {
         $_content_taxonomy_vids[] = $field['vid'];
       }
     }
+    
     _content_taxonomy_taxonomy_unset($form['taxonomy'], $_content_taxonomy_vids);
     
     //hide empty 'Vocabularies' fieldsets
