diff --git a/content_taxonomy.module b/content_taxonomy.module
index 6fc28a6..cf5e37c 100644
--- a/content_taxonomy.module
+++ b/content_taxonomy.module
@@ -156,14 +156,14 @@ function content_taxonomy_field($op, &$node, $field, &$items, $teaser, $page) {
     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 (!is_array($_content_taxonomy_array_cleared) || !isset($_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;
         }
         
         foreach ($items as $key => $entry) {
           if ($entry['value']) {
-            if (is_object($node->taxonomy[$entry['value']]) 
+            if (isset($node->taxonomy[$entry['value']]) && is_object($node->taxonomy[$entry['value']])
               || (is_array($node->taxonomy) && in_array($entry['value'], $node->taxonomy))
               || (isset($entry['_remove']) && $entry['_remove'] == 1)) {
               continue;
@@ -330,7 +330,7 @@ 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
-      if ($form_state['post']['op'] == t('Preview')) {
+      if (isset($form_state['post']['op']) && $form_state['post']['op'] == t('Preview')) {
         $form['taxonomy'] = array('#tree' => TRUE);
         $form['taxonomy']['key'] = array('#type' => 'value', '#value' => '');
         return;
