Index: wysiwyg.js
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/wysiwyg/wysiwyg.js,v
retrieving revision 1.15.2.2
diff -u -p -r1.15.2.2 wysiwyg.js
--- wysiwyg.js	13 Feb 2010 23:58:41 -0000	1.15.2.2
+++ wysiwyg.js	5 Aug 2010 21:13:56 -0000
@@ -110,7 +110,7 @@ Drupal.wysiwygAttach = function(context,
     }
     // Attach editor, if enabled by default or last state was enabled.
     if (params.status) {
-      Drupal.wysiwyg.editor.attach[params.editor](context, params, (Drupal.settings.wysiwyg.configs[params.editor] ? jQuery.extend(true, {}, Drupal.settings.wysiwyg.configs[params.editor][params.format]) : {}));
+      Drupal.wysiwyg.editor.attach[params.editor](context, params, (Drupal.settings.wysiwyg.configs[params.editor] ? jQuery.extend(true, {}, Drupal.settings.wysiwyg.configs[params.editor][params.format][params.field]) : {}));
     }
     // Otherwise, attach default behaviors.
     else {
Index: wysiwyg.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/wysiwyg/wysiwyg.module,v
retrieving revision 1.33.2.11
diff -u -p -r1.33.2.11 wysiwyg.module
--- wysiwyg.module	14 Feb 2010 01:59:47 -0000	1.33.2.11
+++ wysiwyg.module	5 Aug 2010 21:13:56 -0000
@@ -170,10 +170,14 @@ function wysiwyg_process_form(&$form) {
               // 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'] = !empty($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.
-              wysiwyg_add_editor_settings($profile, $theme);
+              // Add profile settings for this field and input format.
+              wysiwyg_add_editor_settings($field, $profile, $theme);
             }
 
             // Use a prefix/suffix for a single input format, or attach to input
@@ -344,18 +348,13 @@ function wysiwyg_load_editor($profile) {
 }
 
 /**
- * Add editor settings for a given input format.
+ * Add editor settings for a given field and input format.
  */
-function wysiwyg_add_editor_settings($profile, $theme) {
-  static $formats = array();
-
-  if (!isset($formats[$profile->format])) {
-    $config = wysiwyg_get_editor_config($profile, $theme);
-    // drupal_to_js() does not properly convert numeric array keys, so we need
-    // to use a string instead of the format id.
-    drupal_add_js(array('wysiwyg' => array('configs' => array($profile->editor => array('format' . $profile->format => $config)))), 'setting');
-    $formats[$profile->format] = TRUE;
-  }
+function wysiwyg_add_editor_settings($field, $profile, $theme) {
+  $config = wysiwyg_get_editor_config($profile, $theme);
+  // drupal_to_js() does not properly convert numeric array keys, so we need
+  // to use a string instead of the format id.
+  drupal_add_js(array('wysiwyg' => array('configs' => array($profile->editor => array('format' . $profile->format => array($field['#id'] => $config))))), 'setting');
 }
 
 /**
Index: editors/fckeditor.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/wysiwyg/editors/fckeditor.inc,v
retrieving revision 1.17.2.3
diff -u -p -r1.17.2.3 fckeditor.inc
--- editors/fckeditor.inc	2 Apr 2010 14:05:54 -0000	1.17.2.3
+++ editors/fckeditor.inc	5 Aug 2010 21:13:56 -0000
@@ -103,7 +103,7 @@ function wysiwyg_fckeditor_settings($edi
     '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' => isset($config['height']) ? $config['height'] : '400',
     'LinkBrowser' => FALSE,
     'LinkUpload' => FALSE,
     'ImageBrowser' => FALSE,
Index: editors/tinymce.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/wysiwyg/editors/tinymce.inc,v
retrieving revision 1.35.2.4
diff -u -p -r1.35.2.4 tinymce.inc
--- editors/tinymce.inc	2 Apr 2010 14:05:54 -0000	1.35.2.4
+++ editors/tinymce.inc	5 Aug 2010 21:13:56 -0000
@@ -149,6 +149,7 @@ function wysiwyg_tinymce_settings($edito
     'plugins' => array(),
     'theme' => $theme,
     'width' => '100%',
+    'height' => isset($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/ckeditor.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/wysiwyg/editors/ckeditor.inc,v
retrieving revision 1.2.6.6
diff -u -p -r1.2.6.6 ckeditor.inc
--- editors/ckeditor.inc	2 Apr 2010 14:05:54 -0000	1.2.6.6
+++ editors/ckeditor.inc	5 Aug 2010 21:13:56 -0000
@@ -130,7 +130,7 @@ function wysiwyg_ckeditor_settings($edit
     'width' => '100%',
     // For better compatibility with smaller textareas.
     'resize_minWidth' => 450,
-    'height' => 420,
+    'height' => isset($config['height']) ? $config['height'] : 400,
     // @todo Do not use skins as themes and add separate skin handling.
     'theme' => 'default',
     'skin' => !empty($theme) ? $theme : 'kama',
Index: editors/js/fckeditor-2.6.js
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/wysiwyg/editors/js/fckeditor-2.6.js,v
retrieving revision 1.16.2.3
diff -u -p -r1.16.2.3 fckeditor-2.6.js
--- editors/js/fckeditor-2.6.js	13 Feb 2010 23:58:41 -0000	1.16.2.3
+++ editors/js/fckeditor-2.6.js	5 Aug 2010 21:13:56 -0000
@@ -9,6 +9,7 @@ Drupal.wysiwyg.editor.attach.fckeditor =
   // Apply editor instance settings.
   FCKinstance.BasePath = settings.EditorPath;
   FCKinstance.Config.wysiwygFormat = params.format;
+  FCKinstance.Config.wysiwygField = params.field;
   FCKinstance.Config.CustomConfigurationsPath = settings.CustomConfigurationsPath;
 
   // Load Drupal plugins and apply format specific settings.
Index: editors/js/fckeditor.config.js
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/wysiwyg/editors/js/fckeditor.config.js,v
retrieving revision 1.6
diff -u -p -r1.6 fckeditor.config.js
--- editors/js/fckeditor.config.js	8 Jun 2009 22:20:38 -0000	1.6
+++ editors/js/fckeditor.config.js	5 Aug 2010 21:13:56 -0000
@@ -10,7 +10,8 @@ Drupal = window.parent.Drupal;
  * FCKConfig.PageConfig.
  */
 var wysiwygFormat = FCKConfig.PageConfig.wysiwygFormat;
-var wysiwygSettings = Drupal.settings.wysiwyg.configs.fckeditor[wysiwygFormat];
+var wysiwygField = FCKConfig.PageConfig.wysiwygField;
+var wysiwygSettings = Drupal.settings.wysiwyg.configs.fckeditor[wysiwygFormat][wysiwygField];
 var pluginSettings = Drupal.settings.wysiwyg.plugins[wysiwygFormat];
 
 /**
