--- announcements.module.orig	2008-10-03 16:52:43.000000000 -0700
+++ announcements.module	2008-10-05 22:13:07.000000000 -0700
@@ -273,6 +294,8 @@
  * to "create" an announcement.
  */
 function announcements_form(&$node) {
+  $type = node_get_types('type', $node);
+
   if ($node->expiration_date == NULL) {
     $node->expiration_date = strtotime(variable_get('announcements_interval', '+1 month'));
   }
@@ -281,13 +304,15 @@
     $node->publish_date = time();
   }
   
-  $form['title'] = array('#type' => 'textfield',
-    '#title' => t('Title'),
-    '#default_value' => $node->title,
-    '#description' => t('Title of the announcement'),
-    '#required' => TRUE, 
-    '#weight' => 1,
-    );
+  if ($type->has_title) {
+    $form['title'] = array('#type' => 'textfield',
+      '#title' => check_plain($type->title_label),
+      '#default_value' => $node->title,
+      '#description' => t('Title of the announcement'),
+      '#required' => TRUE, 
+      '#weight' => 1,
+      );
+  }
 
   $form['publication'] = array('#type' => 'fieldset',
     '#collapsible' => FALSE,
@@ -326,13 +351,11 @@
     '#weight' => 9,
     );
 
-  $form['body'] = array('#type' => 'textarea',
-    '#title' => t('Body'),
-    '#default_value' => $node->body,
-    '#description' => t('Full content for the announcement which is shown with the abstract on the details page'),
-    '#required' => TRUE, 
-    '#weight' => 10,
-    );
+  if ($type->has_body) {
+    $form['body_field'] = node_body_field($node, $type->body_label, $type->min_word_count);
+    $form['body_field']['#weight'] = 10;
+    $form['body_field']['body']['#description'] = t('Full content for the announcement which is shown with the abstract on the details page');
+  }
 
   $form['#submit'][] = 'announcements_submit';
 
