Index: includes/form.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/form.inc,v
retrieving revision 1.438
diff -u -p -r1.438 form.inc
--- includes/form.inc	7 Mar 2010 23:14:20 -0000	1.438
+++ includes/form.inc	8 Mar 2010 04:27:50 -0000
@@ -2801,16 +2801,24 @@ function theme_form($variables) {
  */
 function theme_textarea($variables) {
   $element = $variables['element'];
+  $wrapper_attributes = array(
+    'class' => array('form-textarea-wrapper'),
+  );
   $class = array('form-textarea');
 
-  // Add resizable behavior
-  if ($element['#resizable'] !== FALSE) {
+  // Add resizable behavior.
+  if (!empty($element['#resizable'])) {
     drupal_add_js('misc/textarea.js');
-    $class[] = 'resizable';
+    $wrapper_attributes['class'][] = 'resizable';
   }
 
+  $output = '<div' . drupal_attributes($wrapper_attributes) . '>';
+
   _form_set_class($element, $class);
-  return '<textarea cols="' . $element['#cols'] . '" rows="' . $element['#rows'] . '" name="' . $element['#name'] . '" id="' . $element['#id'] . '" ' . drupal_attributes($element['#attributes']) . '>' . check_plain($element['#value']) . '</textarea>';
+  $output .= '<textarea cols="' . $element['#cols'] . '" rows="' . $element['#rows'] . '" name="' . $element['#name'] . '" id="' . $element['#id'] . '" ' . drupal_attributes($element['#attributes']) . '>' . check_plain($element['#value']) . '</textarea>';
+
+  $output .= '</div>';
+  return $output;
 }
 
 /**
Index: misc/textarea.js
===================================================================
RCS file: /cvs/drupal/drupal/misc/textarea.js,v
retrieving revision 1.30
diff -u -p -r1.30 textarea.js
--- misc/textarea.js	31 Aug 2009 05:51:08 -0000	1.30
+++ misc/textarea.js	8 Mar 2010 04:45:17 -0000
@@ -3,11 +3,11 @@
 
 Drupal.behaviors.textarea = {
   attach: function (context, settings) {
-    $('textarea.resizable', context).once('textarea', function () {
+    $('.form-textarea-wrapper.resizable', context).once('textarea', function () {
       // When wrapping the text area, work around an IE margin bug. See:
       // http://jaspan.com/ie-inherited-margin-bug-form-elements-and-haslayout
       var staticOffset = null;
-      var textarea = $(this).wrap('<div class="resizable-textarea"><span></span></div>');
+      var textarea = $(this).addClass('resizable-textarea').find('textarea').wrap('<span></span>');
       var grippie = $('<div class="grippie"></div>').mousedown(startDrag);
 
       grippie
Index: modules/system/system-behavior.css
===================================================================
RCS file: /cvs/drupal/drupal/modules/system/system-behavior.css,v
retrieving revision 1.5
diff -u -p -r1.5 system-behavior.css
--- modules/system/system-behavior.css	3 Mar 2010 19:46:26 -0000	1.5
+++ modules/system/system-behavior.css	8 Mar 2010 04:44:21 -0000
@@ -79,9 +79,14 @@ html.js fieldset.collapsible .fieldset-w
 /**
  * Resizable textareas
  */
-.resizable-textarea {
+.form-textarea-wrapper {
+  line-height: 100%;
   width: 95%;
 }
+.form-textarea-wrapper textarea {
+  margin-bottom: 0;
+  width: 100%;
+}
 .resizable-textarea .grippie {
   height: 9px;
   overflow: hidden;
@@ -91,8 +96,6 @@ html.js fieldset.collapsible .fieldset-w
   cursor: s-resize;
 }
 html.js .resizable-textarea textarea {
-  margin-bottom: 0;
-  width: 100%;
   display: block;
 }
 
