Index: modules/blog/blog.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/blog/blog.module,v
retrieving revision 1.316
diff -u -p -r1.316 blog.module
--- modules/blog/blog.module	31 Dec 2008 12:02:21 -0000	1.316
+++ modules/blog/blog.module	10 Feb 2009 04:10:49 -0000
@@ -77,7 +77,7 @@ function blog_form($node, $form_state) {
   $type = node_get_types('type', $node);
 
   $form['title'] = array('#type' => 'textfield', '#title' => check_plain($type->title_label), '#required' => TRUE, '#default_value' => !empty($node->title) ? $node->title : NULL, '#weight' => -5);
-  $form['body_field'] = node_body_field($node, $type->body_label, $type->min_word_count);
+  $form['body_field'] = node_body_field($node, $type->body_label);
   return $form;
 }
 
Index: modules/node/content_types.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/node/content_types.inc,v
retrieving revision 1.64
diff -u -p -r1.64 content_types.inc
--- modules/node/content_types.inc	26 Jan 2009 14:08:43 -0000	1.64
+++ modules/node/content_types.inc	10 Feb 2009 04:10:50 -0000
@@ -129,13 +129,6 @@ function node_type_form(&$form_state, $t
     '#default_value' => isset($type->body_label) ? $type->body_label : '',
     '#description' => t('To omit the body field for this content type, remove any text and leave this field blank.'),
   );
-  $form['submission']['min_word_count'] = array(
-    '#type' => 'select',
-    '#title' => t('Minimum number of words'),
-    '#default_value' => $type->min_word_count,
-    '#options' => drupal_map_assoc(array(0, 10, 25, 50, 75, 100, 125, 150, 175, 200)),
-    '#description' => t('The minimum number of words for the body field to be considered valid for this content type. This can be useful to rule out submissions that do not meet the site\'s standards, such as short test posts.')
-  );
   $form['submission']['help']  = array(
     '#type' => 'textarea',
     '#title' => t('Explanation or submission guidelines'),
@@ -271,7 +264,6 @@ function node_type_form_submit($form, &$
 
   $type->description = $form_state['values']['description'];
   $type->help = $form_state['values']['help'];
-  $type->min_word_count = $form_state['values']['min_word_count'];
   $type->title_label = $form_state['values']['title_label'];
   $type->body_label = $form_state['values']['body_label'];
 
Index: modules/node/node.api.php
===================================================================
RCS file: /cvs/drupal/drupal/modules/node/node.api.php,v
retrieving revision 1.10
diff -u -p -r1.10 node.api.php
--- modules/node/node.api.php	28 Jan 2009 07:34:30 -0000	1.10
+++ modules/node/node.api.php	10 Feb 2009 04:10:50 -0000
@@ -440,8 +440,6 @@ function hook_nodeapi_view($node, $tease
  *      field. Optional (defaults to TRUE).
  *   - "body_label": the label for the body field of this content type. Optional
  *      (defaults to 'Body').
- *   - "min_word_count": the minimum number of words for the body field to be
- *      considered valid for this content type. Optional (defaults to 0).
  *   - "locked": boolean indicating whether the machine-readable name of this
  *      content type can (FALSE) or cannot (TRUE) be edited by a site
  *      administrator. Optional (defaults to TRUE).
Index: modules/node/node.install
===================================================================
RCS file: /cvs/drupal/drupal/modules/node/node.install,v
retrieving revision 1.11
diff -u -p -r1.11 node.install
--- modules/node/node.install	21 Jan 2009 16:58:42 -0000	1.11
+++ modules/node/node.install	10 Feb 2009 04:10:50 -0000
@@ -339,13 +339,6 @@ function node_schema() {
         'not null' => TRUE,
         'default' => '',
       ),
-      'min_word_count' => array(
-        'description' => 'The minimum number of words the body must contain.',
-        'type' => 'int',
-        'unsigned' => TRUE,
-        'not null' => TRUE,
-        'size' => 'small',
-      ),
       'custom' => array(
         'description' => 'A boolean indicating whether this type is defined by a module (FALSE) or by a user via a module like the Content Construction Kit (TRUE).',
         'type' => 'int',
Index: modules/node/node.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/node/node.module,v
retrieving revision 1.1023
diff -u -p -r1.1023 node.module
--- modules/node/node.module	6 Feb 2009 16:25:08 -0000	1.1023
+++ modules/node/node.module	10 Feb 2009 04:10:50 -0000
@@ -571,7 +571,6 @@ function node_type_save($info) {
     'body_label' => (string) $type->body_label,
     'description' => (string) $type->description,
     'help' => (string) $type->help,
-    'min_word_count' => (int) $type->min_word_count,
     'custom' => (int) $type->custom,
     'modified' => (int) $type->modified,
     'locked' => (int) $type->locked,
@@ -691,7 +690,6 @@ function node_type_set_defaults($info = 
     $type->base = '';
     $type->description = '';
     $type->help = '';
-    $type->min_word_count = 0;
     $type->has_title = 1;
     $type->has_body = 1;
     $type->title_label = t('Title');
@@ -972,12 +970,6 @@ function node_validate($node, $form = ar
   $node = (object)$node;
   $type = node_get_types('type', $node);
 
-  // Make sure the body has the minimum number of words.
-  // TODO : use a better word counting algorithm that will work in other languages
-  if (!empty($type->min_word_count) && isset($node->body) && count(explode(' ', $node->body)) < $type->min_word_count) {
-    form_set_error('body', t('The body of your @type is too short. You need at least %words words.', array('%words' => $type->min_word_count, '@type' => $type->name)));
-  }
-
   if (isset($node->nid) && (node_last_changed($node->nid) > $node->changed)) {
     form_set_error('changed', t('This content has been modified by another user, changes cannot be saved.'));
   }
@@ -1946,7 +1938,7 @@ function node_feed($nids = FALSE, $chann
         $item->body = $content;
         unset($item->teaser);
       }
-    
+
       // Allow modules to modify the fully-built node.
       node_invoke_nodeapi($item, 'alter', $teaser, FALSE);
     }
@@ -2781,7 +2773,7 @@ function node_content_form($node, $form_
   }
 
   if ($type->has_body) {
-    $form['body_field'] = node_body_field($node, $type->body_label, $type->min_word_count);
+    $form['body_field'] = node_body_field($node, $type->body_label);
   }
 
   return $form;
Index: modules/node/node.pages.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/node/node.pages.inc,v
retrieving revision 1.54
diff -u -p -r1.54 node.pages.inc
--- modules/node/node.pages.inc	5 Feb 2009 03:42:58 -0000	1.54
+++ modules/node/node.pages.inc	10 Feb 2009 04:10:50 -0000
@@ -268,7 +268,7 @@ function node_form(&$form_state, $node) 
 /**
  * Return a node body field, with format and teaser.
  */
-function node_body_field(&$node, $label, $word_count) {
+function node_body_field(&$node, $label) {
 
   // Check if we need to restore the teaser at the beginning of the body.
   $include = !isset($node->teaser) || ($node->teaser == substr($node->body, 0, strlen($node->teaser)));
@@ -300,7 +300,6 @@ function node_body_field(&$node, $label,
     '#title' => check_plain($label),
     '#default_value' => $include ? $node->body : ($node->teaser . $node->body),
     '#rows' => 20,
-    '#required' => ($word_count > 0),
     '#text_format' => isset($node->format) ? $node->format : FILTER_FORMAT_DEFAULT,
   );
 
Index: modules/simpletest/drupal_web_test_case.php
===================================================================
RCS file: /cvs/drupal/drupal/modules/simpletest/drupal_web_test_case.php,v
retrieving revision 1.83
diff -u -p -r1.83 drupal_web_test_case.php
--- modules/simpletest/drupal_web_test_case.php	6 Feb 2009 00:30:36 -0000	1.83
+++ modules/simpletest/drupal_web_test_case.php	10 Feb 2009 04:10:51 -0000
@@ -542,7 +542,6 @@ class DrupalWebTestCase {
       'name' => $name,
       'description' => '',
       'help' => '',
-      'min_word_count' => 0,
       'title_label' => 'Title',
       'body_label' => 'Body',
       'has_title' => 1,
@@ -1999,7 +1998,7 @@ class DrupalWebTestCase {
     $match = is_array($code) ? in_array($curl_code, $code) : $curl_code == $code;
     return $this->assertTrue($match, $message ? $message : t('HTTP response expected !code, actual !curl_code', array('!code' => $code, '!curl_code' => $curl_code)), t('Browser'));
   }
-  
+
   /**
    * TODO write documentation.
    * @param $type
@@ -2017,13 +2016,13 @@ class DrupalWebTestCase {
     );
     $field_definition += $settings;
     field_create_field($field_definition);
-    
+
     $field = field_read_field($field_name);
     $this->assertTrue($field, t('Created field @field_name of type @type.', array('@field_name' => $field_name, '@type' => $type)));
-    
+
     return $field;
   }
-  
+
   /**
    * TODO write documentation.
    * @param $field_name
@@ -2046,10 +2045,10 @@ class DrupalWebTestCase {
       ),
     );
     field_create_instance($instance_definition);
-    
+
     $instance = field_read_instance($field_name, $bundle);
     $this->assertTrue($instance, t('Created instance of field @field_name on bundle @bundle.', array('@field_name' => $field_name, '@bundle' => $bundle)));
-    
+
     return $instance;
   }
 }
Index: modules/taxonomy/taxonomy.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/taxonomy/taxonomy.module,v
retrieving revision 1.460
diff -u -p -r1.460 taxonomy.module
--- modules/taxonomy/taxonomy.module	6 Feb 2009 16:25:09 -0000	1.460
+++ modules/taxonomy/taxonomy.module	10 Feb 2009 04:10:51 -0000
@@ -527,7 +527,7 @@ function taxonomy_form_alter(&$form, $fo
           '#default_value' => $typed_string,
           '#autocomplete_path' => 'taxonomy/autocomplete/' . $vocabulary->vid,
           '#weight' => $vocabulary->weight,
-          '#maxlength' => 255,
+          '#after_build' => array('_taxonomy_set_maxlength'),
         );
       }
       else {
@@ -1186,6 +1186,14 @@ function _taxonomy_term_select($title, $
 }
 
 /**
+ * Helper function to set the tags textfield maxlength to unlimited
+ */
+function _taxonomy_set_maxlength(&$element) {
+  unset($element['#maxlength']);
+  return($element);
+}
+
+/**
  * Format the selection field for choosing terms
  * (by default the default selection field is used).
  *
