Index: simplenews.admin.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/simplenews/simplenews.admin.inc,v
retrieving revision 1.20
diff -u -p -r1.20 simplenews.admin.inc
--- simplenews.admin.inc	4 Jul 2008 10:21:14 -0000	1.20
+++ simplenews.admin.inc	4 Jul 2008 10:28:14 -0000
@@ -775,7 +775,7 @@ function simplenews_admin_settings_submi
   // Newsletter vocabulary is updated using node type settings.
   $vocabulary = (array)taxonomy_vocabulary_load($form_state['values']['simplenews_vid']);
   $form_state['values']['simplenews_content_types'] = array_filter($form_state['values']['simplenews_content_types']);
-  $vocabulary['nodes'] = array_merge($vocabulary['nodes'], $form_state['values']['simplenews_content_types']);
+  $vocabulary['nodes'] = $form_state['values']['simplenews_content_types'];
 
   taxonomy_save_vocabulary($vocabulary);
   drupal_set_message(t('Updated vocabulary %name.', array('%name' => $vocabulary['name'])));
Index: simplenews.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/simplenews/simplenews.module,v
retrieving revision 1.115
diff -u -p -r1.115 simplenews.module
--- simplenews.module	3 Jul 2008 10:41:51 -0000	1.115
+++ simplenews.module	4 Jul 2008 10:28:17 -0000
@@ -449,8 +449,8 @@ function simplenews_form_alter(&$form, $
       '#value' => t('This is the designated simplenews vocabulary.'),
       '#weight' => -1,
     );
-    $form['content_types']['nodes']['#required'] = TRUE;
-    $form['content_types']['nodes']['#description'] = t('Select content type(s) to be used as newsletter');
+    $form['content_types']['nodes']['#disabled'] = TRUE;
+    $form['content_types']['nodes']['#description'] = t('These content type(s) are used as newsletter. They can be set in !simplenews_settings.', array('!simplenews_settings' => l('Simplenews settings', 'admin/settings/simplenews')));
   }
 
   // Simplenews newsletter node form
@@ -459,10 +459,9 @@ function simplenews_form_alter(&$form, $
       if (isset($form['#node']->simplenews)) {
         $simplenews_values = $form['#node']->simplenews;
       }
-      $vid = variable_get('simplenews_vid', '');
-      if (!isset($form['taxonomy'][$vid]) && !isset($form['taxonomy']['tag'][$vid])) {
-        $vocabulary = taxonomy_vocabulary_load($vid);
-        drupal_set_message(t('Content type %type requires to be assigned to vocabulary %name. Please change the vocabulary settings.', array('%type' => $form['type']['#value'], '%name' => $vocabulary->name)), 'error');
+      $vocabulary = taxonomy_vocabulary_load(variable_get('simplenews_vid', ''));
+      if (!isset($vocabulary->nodes[$form['type']['#value']])) {
+        drupal_set_message(t('Missing vocabulary %name. Please check and save the !settings.', array('%name' => $vocabulary->name, '!settings' => l('Simplenews settings', 'admin/simplenews/settings'))), 'error');
       }
       $form['simplenews'] = array(
         '#type' => 'fieldset',
