Index: includes/common.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/common.inc,v
retrieving revision 1.431
diff -u -r1.431 common.inc
--- includes/common.inc	21 Mar 2005 19:26:47 -0000	1.431
+++ includes/common.inc	29 Mar 2005 16:20:55 -0000
@@ -1266,25 +1266,18 @@
  */
 function form_textarea($title, $name, $value, $cols, $rows, $description = NULL, $attributes = NULL, $required = FALSE) {
   $cols = $cols ? ' cols="'. $cols .'"' : '';
-  $output = '';
+  $pre = '';
+  $post = '';
 
   // e.g. optionally plug in a WYSIWYG editor
   foreach (module_list() as $module_name) {
     if (module_hook($module_name, 'textarea')) {
-      $output .= module_invoke($module_name, 'textarea', 'pre', $name);
+      $pre  .= module_invoke($module_name, 'textarea', 'pre', $name);
+      $post .= module_invoke($module_name, 'textarea', 'post', $name);
     }
   }
 
-  $output .= theme('form_element', $title, '<textarea wrap="virtual"'. $cols .' rows="'. $rows .'" name="edit['. $name .']" id="edit-'. $name .'" class="'. _form_get_class('textarea', $required, _form_get_error($name)) .'"'. drupal_attributes($attributes) .'>'. check_form($value) .'</textarea>', $description, 'edit-'. $name, $required, _form_get_error($name));
-
-  // e.g. optionally plug in a WYSIWYG editor
-  foreach (module_list() as $module_name) {
-    if (module_hook($module_name, 'textarea')) {
-      $output .= module_invoke($module_name, 'textarea', 'post', $name);
-    }
-  }
-
-  return $output;
+  return theme('form_element', $title, $pre .'<textarea wrap="virtual"'. $cols .' rows="'. $rows .'" name="edit['. $name .']" id="edit-'. $name .'" class="'. _form_get_class('textarea', $required, _form_get_error($name)) .'"'. drupal_attributes($attributes) .'>'. check_form($value) .'</textarea>'. $post, $description, 'edit-'. $name, $required, _form_get_error($name));
 }
 
 /**
