Index: wysiwyg.module
===================================================================
--- wysiwyg.module	(revision 4)
+++ wysiwyg.module	(revision 459)
@@ -170,6 +170,10 @@
               // Check editor theme (and reset it if not/no longer available).
               $theme = wysiwyg_get_editor_themes($profile, (isset($profile->settings['theme']) ? $profile->settings['theme'] : ''));
 
+             // Rough estimate of textarea height in pixels
+             // 40 for the toolbar, 29 for the first row, and 15 for the rest.
+              $profile->settings['height'] = $field['#rows'] ? 40 + 29 + 15*($field['#rows'] - 1) : 400;
+              
               // Add plugin settings (first) for this input format.
               wysiwyg_add_plugin_settings($profile);
               // Add profile settings for this input format.
Index: editors/tinymce.inc
===================================================================
--- editors/tinymce.inc	(revision 4)
+++ editors/tinymce.inc	(revision 459)
@@ -149,6 +149,7 @@
     'plugins' => array(),
     'theme' => $theme,
     'width' => '100%',
+    'height' => $config['height'] ? $config['height'] : '400',
     // Strict loading mode must be enabled; otherwise TinyMCE would use
     // document.write() in IE and Chrome.
     'strict_loading_mode' => TRUE,
Index: editors/fckeditor.inc
===================================================================
--- editors/fckeditor.inc	(revision 4)
+++ editors/fckeditor.inc	(revision 459)
@@ -103,7 +103,7 @@
     'SkinPath' => base_path() . $editor['library path'] . '/editor/skins/' . $theme . '/',
     'CustomConfigurationsPath' => base_path() . drupal_get_path('module', 'wysiwyg') . '/editors/js/fckeditor.config.js',
     'Width' => '100%',
-    'Height' => 420,
+    'Height' => $config['height'] ? $config['height'] : '400',
     'LinkBrowser' => FALSE,
     'LinkUpload' => FALSE,
     'ImageBrowser' => FALSE,
